본문 바로가기

CS Study/Network

2. TCP/IP의 데이터를 전기 신호로 만들어 보낸다

IP와 이더넷의 패킷 송수신 동작

TCP 담당 부분은 접속, 송수신, 연결끊기의 각 단계에서 통신 상대와 대화할 때 IP 담당 부분에 의뢰하여 대화하는 데이터를 패킷의 모습으로 만들어 상대에게 도착한다.

 

TCP로 부터 의뢰를 받은 IP 담당 부분이 패킷을 어떻게 상대에게 송신할까?

패킷의 기본 송수신 동작

  1. 패킷의 송신처가 되는 기기가 패킷을 만든다. 헤더에는 적절한 제어정보를 기록하고, 데이터 부분에는 얼마간의 데이터를 넣은 후 패킷을 가장 가까운 중계장치에 송신한다.
  2. 가장 가까운 중계 장치에 도착하게된 패킷은 중계장치가 헤더를 조사하여 패킷의 목적지를 판단한다.
  3. 2번 작업을 반복해서 패킷을 중계하면 그 다음의 중계장치로 패킷이 보내지고 최종적으로 수신처의 기기에 도착하게 된다.
  4. 수신처에서 송신처를 향해 회답 패킷을 보낸다.

(참고) TCP/IP는 위와 같은 기본 구조로부터 더 발전된 형태라 더 복잡하다.

서브넷에는 라우터와 허브라는 중계 장치를 가지고 있다. 라우터와 허브가 서로 역할을 분담하여 패킷을 중계한다.

  • 라우터가 목적지를 확인하여 다음 라우터를 나타낸다. 라우터는 IP의 규칙에 따라 패킷을 운반한다. == IP가 목적지를 확인하여 다음 IP 중계 장치를 나타낸다.
  • 허브가 서브넷 안에서 패킷을 운반하여 다음 라우터에 도착한다. 허브는 이더넷의 규칙에 따라 패킷을 운반한다. == 서브넷 안에 있는 이더넷이 중계장치까지 패킷을 운반한다.

  • IP 헤더 : IP용 헤더, IP주소를 사용한다. IP 프로토콜에 규정된 규칙에 따라 IP 주소로 표시된 목적지까지 패킷을 전달할 때 사용하는 제어 정보를 기록한 것이다.
  • MAC 헤더 : 이더넷용 헤더, MAC 주소를 사용한다. LAN을 사용하여 가장 가까운 라우터까지 패킷을 운반할 때 사용하는 제어 정보를 기록한것이다.

이더넷

출처 : https://m.blog.naver.com/PostView.nhn?blogId=pasudo123&logNo=221147632824&proxyReferer=https:%2F%2Fwww.google.co.kr%2F

이더넷은 다수의 컴퓨터가 여러 상대와 자유롭게 적은 비용으로 통신하기 위해 고안된 통신 기술이다.

초기 이더넷의 원형 모델에서는 트렁크 케이블을 통해 컴퓨터가 신호를 보내면 이 케이블을 통해 네트워크 전체에 신호가 흐르고 전원에게 신호가 도착하게 되는 원리였다.

단, 이런 동작만으로는 신호가 누구에게 갈 것인지를 판단할 수 없으므로 신호의 맨 앞부분에 수신처 주소를 써둔다.

이 방식으로 수신처 주소에 해당하는 기기는 패킷을 수신하고 다른 기기는 패킷을 폐기한다. 이 동작을 제어하기 위해 MAC 헤더를 사용하는것이다. 즉, 송신처 MAC 주소에 따라 누가 송신하는지를 알고, 패킷의 내용물로 무엇이 들어있는지를 알게 된다.

이러한 구조가 리피터 허브로 바뀌었고 현재는 스위칭 허브를 사용한 형태가 보급되었다. 이더넷이라고 하면 이 형태를 가리키는것이다. 스위칭 허브가 수신처 MAC 주소에 따라 목적지를 확인하고 패킷을 중계하므로 신호는 원하는 상대에게만 흐르도록 바뀌었다. (다른 곳에는 신호가 흐르지 않게 된것이다. 이 경우에는 충돌이 일어나지 않게된다.)

 

허브가 업그레이드 되어 스위칭 허브로 변경됨에 따라, 이더넷은 실질적으로 충돌 자체가 발생하지 않는 구조로 바뀌었다. 현재의 이더넷은 충돌이 발생하지 않는 구조이지만, 과거와의 호환성 문제로 CSMA/CD 는 여전히 이더넷 표준에 포함되어 있다.

CSMA/CD (Carrier Sense Multiple Access with Collision Detection)

  • LAN 통신 프로토콜 종류이다.
  • 이더넷 환경에서 통신을 하고 싶은 컴퓨터는 먼저 지금 네트워크 상에 통신이 일어나고 있는지를 확인해야 한다.
  1. Carrier Sense : 네트워크 자원을 쓰고 있는 컴퓨터가 있는지를 확인한다. 이때 누군가가 통신을 하고 있다면 기다린다. 통신이 없어지면 통신을 시작한다.
  2. Multiple Access : 통신이 없어져서 다수의 컴퓨터가 동시에 통신을 시작하는 상황을 의미한다.
  3. Collision Detection : 다수의 컴퓨터가 데이터를 동시에 보내려다가 충돌이 날수있기 때문에 컴퓨터는 통신을 시작하고나서도 충돌이 발생했는지를 감지해야한다.

(참고) 만약, 충돌이 일어나게 된다면 데이터를 전송했던 컴퓨터는 랜덤한 시간 동안 기다린 다음 다시 데이터를 전송한다. 이런 충돌이 계속해서 15번 일어나면 통신을 끊는다.

 

 

 

 

출처 : 성공과 실패를 결정하는 1%의 네트워크 원리