본문 바로가기

애니리뷰

네트워크 2 ) 신호의 전송과 충돌

1계층의 역할, 개요

케이블(파이프)이 연결된 기기에 신호(데이터)를 전달하는 것이 역할.

정하는 것 - 1) 보내는 데이터인 '신호'의 종류, 형태

2) 인터페이스 - 비트를 신호로 변환하는 법이나, 케이블의 잭과 인터페이스 쪽의 삽입구 형태

 

2계층에서 데이터(비트)가 신호로 변환되면, 1계층의 인터페이스에서 신호를 전송. 다시 수신처 인터페이스가 신호를 받으면 이를 비트로 변환. 즉, 인터페이스는 비트를 신호로, 비트를 신호로 변환.

통신속도(bps) = 1초간의 신호 횟수 * 1신호에서의 비트 수

 

허브는 T자 분배를 케이블에 만드는 대신, 케이블에 허브를 연결하면 케이블이 분배되는 것과 같은 역할을 한다.

즉, 케이블로 허브에 연결된 기기는 동일 케이블에 연결된 것과 같은 취급을 받는다.

이러한 허브의 첫번째기능은 신호의 증폭, 재생. 즉, 감소에 의해 붕괴된 신호를 원래의 것으로 증폭, 재생시킴

두번째 기능은 복수의 기기를 연결해, 네트워크를 구축. 허브에 연결된 것들끼리 신호를 주고받을 수 있음.

 

한데 이러한 허브는 자신과 연결된 포트 중, 수신한 포트 외 모든 포트에 수신한 신호를 송신하는데, 

이 경우, 신호가 보내지는 도중에 다른 신호를 보내는 충돌이 발생할 수 있다.

이러한, 신호를 송신하면 충돌이 발생할지도 모르는 범위를 충돌 도메인이라 함. 

이 충돌도메인을 줄이는, 즉 충돌도메인 내의 컴퓨터 수를 적게 하는 것이 스위치의 역할.

 

 

2계층의 역할, 개요

신호가 닿는 범위에서의 데이터 전송에 관한 규정.

즉, 충돌을 막기 위해 '송신하는 타이밍을 엇갈리게 하는 것' 외에도, 신호의 송신 전이나 수신 후에 데이터를 바르게 송수신하는 순가 필요하다. 

2계층부터는 데이터를 보내기 전에 어떤 일을 할 지, 데이터가 도달한 후 어떤 일을 할 지 규정하기에,

케이블 분배기로 연결되는 범위인 세그먼트 내에서의 데이터 전송이 곧 신호가 닿는 범위다.

 

2계층에서 사용되는 규칙은 LAN용과 WAN용이 나뉘며,

이중 LAN용규칙은. '이더넷'에 기반함.

세그먼트 내에서의 데이터 전송엔 프레이밍이 쓰이는데, 이는 송수신되는 비트열에 의미를 줘서 데이터로 취급할 수 있게 함.

[ 프리엠블(신호가 시작된다는 신호) 8비트 + 어드레스 16비트 ]

 

신호가 도달하는 범위인 '세그먼트' 내에서, 어떻게 데이터를 송수신할지 고려하는 2계층.

여기에서, 어드레스(16비트)를 어떻게 사용할 지 배정하는 것이 어드레싱

보내는 방법은 멀티캐스트(1대 다수), 브로드캐스트(전원에게), 유니캐스트(1대1)

 

MAC주소 - 각각의 기기는 최소 하나의 유니캐스트 주소를 갖는다. 라우터의 경우는, 복수의 인터페이스를 지녔으니, 인터페이스마다 유니캐스트 주소를 갖는다. 이 유니캐스트 주소는 유일하다.

멀티캐스트 주소는, 그룹 번호와 같기에, 같은 주소를 가진 기기가 여러개여도 된다.

이더넷에서 사용되는 MAC주소는, 인터페이스에 지정된 고정주소다. 이 MAC주소는 48비트(4비트마다 16진수).

 

또한, 이더넷 프레임이라 하는, 이더넷에서 사용하는 2계층 PDU는 아래와 같다.

수신처 MAC주소 송신처 MAC주소 타입 페이로드 FCS
48비트 48비트 16비트 368~12000비트 32비트

이더넷 헤더는 타입까지의 14바이트로, 송수신처의 주소와 페이로드의 내용을 식별.

타입은 '페이로드에서 전송하는 데이터(3계층 PDU)의 종류를 특정하는 값'이다.

페이로드는 이더넷 헤더와 트레일러에 의해 캡슐화되는 3계층 PDU.

트레일러엔 에러를 체크하는 4바이트.

 

이더넷은 수신한 프레임의 수신처 MAC주소를 보고, 자신에게 온 것 외의 다른 프레임을 파기하는 방식으로 충돌을 방지한다. 허브에서 보내지는 데이터는 이런 식으로 원하는 수신처에만 가게 됨

또한 이더넷은 신호를 보내는 타이밍을 겹치지 않도록 비켜나가게함으로써 충돌을 되도록 방지하는데, 여기에 쓰이는 게 CSMA/CD.

1) CS(신호감지)는, 누군가가 송신중이면 송신하지 않음

2) MA(다중 액세스)는, 아무도 송신하고 있지 않다면 송신할 수 있음.

3) CD(충돌검사)는, 송신 후 충돌이 일어나면 다시 재수행함.

 

그러나, CSMA/CD는 충돌을 회피하려 하는 방식이기에, 송신-충돌-재송신-충돌의 비효율이 발생할 수 있다.

스위치를 이용해, 신호가 지나는 길을 나누는 방식을 쓰기도 한다. 스위치는 허브를 대체한다.

 

이는 MAC주소 필터링, 버퍼링을 이용하는데, 필터링은 수신한 프레임의 송신처 MAC주소를 기록하는 것으로, 수신한 포트랑 MAC주소를 연관짓는다.

이러한 대응표를 만듬으로써, 스위치는 포트에 연결된 컴퓨터의 MAC주소를 기억한다. 이러한 어드레스테이블을 작성.

그럼, 프레임을 수신한 스위치는 이더넷프레임의 수신처 MAC주소를 보고 그 MAC주소가 있는 포트에만 프레임을 송신.

이를 통해, 수신처가 다른 프레임이 동시에 스위치에 도달해도 충돌이 미발생.

단, 아직 학습하지 않은 MAC주소가 오거나, 멀티캐스트나 브로드캐스트 수신처인 프레임을 수신한 경우엔 여전히 플러딩(모두에게 보내기)를 시전.

 

그렇다면, 수신처가 같은 프레임이 동시에 도달한다면? 이 때 쓰는 게 MAC주소 버퍼링. 즉, 충돌할 것 같은 프레임을 버퍼에 일시적으로 저장한다. 이러한 버퍼의 용량은 '백프레셔(Back Pressure)'라 하는 규격으로 규정.

버퍼가 찬 경우, 충돌을 전하는 신호(또는 PAUSE 프레임)에 의해 더 이상의 송신을 중단시킨다.

즉, JAM신호를 송신하면, 송신자는 충돌이 일어났다 판단해 송신을 중지.

 

그럼 왜 CSMA/CD와 스위치를 동시에 쓰는가? 

CSMA/CD는 자기가 송신중일 땐 수신불가, 타인이 송신(자신은 수신)중일 땐 송신 불가라는 반이중통신을 쓰는데, 

동시에 송수신이 가능한 전이중통신은, 스위치를 사용하는 경우엔 충돌을 염려할 필요가 없으니, CSMA/CD를 사용할 필요가 없다. 이것이 전이중통신이 가능한 이유. 이를 전이중 이더넷이라 함.

 

만약 5대 컴퓨터가 허브에 연결되고, 케이블이 100Mbps라면,

허브에선 동시에 송신이 불가하니, 1대가 100Mbps를 송신하고 다음 컴퓨터가 보내고, 또 다음으로.... 를 반복하면 결과적으로 5초가 걸린다. 즉, 1대당 20Mbps. 이것이 CSMA/CD의 단점.

그러나 스위치를 사용한 전이중 이더넷은, 동시에 송수신이 가능하니 100Mbps사용 가능.

 


딜레이: d_nodal = d_processing + d_queue + d_trans + d_prop

d_trans = L/R = 패킷길이 / bandwith

d_prop = d/s = physical link 길이 / propagation speed

 

어플리케이션 프로그램 내 프로세스끼리 통신할 때, 소켓을 통해 밑단에 메시지를 보냄.

 

TCP: 보내는 사람이, 받는 사람의 상황(flow control)이나 라우터의 상황(congestion control)을 보고 보냄.

UDP: 어떤 관계 없이 데이터 전송.

Streaming multimedia, internet Telephony(예. 스카이넷)은 UDP, TCP 다 쓰며, 나머진 TCP활용

HTTP는 TCP로 구성되며, 한 번 connection에 여러 개 오브젝트를 쓰는 Persistent HTTP를 씀.

기존엔 2번 라우터를 경유하는 2개의 RTT를 씀(일단 연결을 함 + 실제 데이터 가져오기).

 

캐시의 중요성

[가정]

1개의 오브젝트의 평균 크기: 1Mbits

브라우저~origin서버로의 평균 request율: 15/sec

institutional 라우터에서 origin서버로의 RTT: 2sec

액세스 링크 : 15Mbps

 

[연속]

LAN 점유율: 15%

액세스링크 점유율: 99% : 큰 문제가 됨.

총 딜레이 = 인터넷딜레이 + 액세스 딜레이 + LAN 딜레이

= 2sec + minutes + usescs....

 

이 액세스 링크를 10배 확장시키면,

access link는 150Mbps & access link 점유율: 9.9%이 되지만, 비용이 많이 듬.

만일 웹캐시를 놓게 되고, 40%만 캐시, 60%만 오리지널로 두면

액세스링크는 60%만 활용. 즉, 9Mbps, 점유율은 60%.

그럼, 토탈 딜레이 = 0.6*(delay from origin server) + 0.4*(캐시때의 딜레이)

= 0.6*(2.01) + 0.4*(~msecs) = ~1.2msec

'애니리뷰' 카테고리의 다른 글

네트워크 3 ) IP 어드레싱  (0) 2022.04.03
opencv의 c++에서의 픽셀 접근  (0) 2022.03.27
네트워크 1 ) 기초  (0) 2022.03.13
조합 dfs 형식으로 풀기  (4) 2021.10.01
맵 공부  (0) 2021.02.01