맛동산이

네트워크) IP프로토콜과 이더넷의 패킷 송수신 동작 본문

CS/네트워크

네트워크) IP프로토콜과 이더넷의 패킷 송수신 동작

진ddang 2023. 7. 6. 01:09

본 내용은 “성공과 실패를 결정하는 1%의 네트워크” 를 참고하여 작성하였습니다.



이더넷과 서브넷

이더넷은 우리가 사용하는 LAN환경을 의미한다.

서브넷은 허브에 연결된(물리적으로) 컴퓨터들이 만들어 내는 네트워크 환경을 의미한다.

서브넷은 LAN으로 연결되어 있고 이렇게 이더넷들의 연결이 된것이 결국 하나의 큰 네트워크를 생성하고 있다.

패킷

패킷은 데이터를 전송하기 쉽게 나눈 단위를 의미한다.

패킷은 헤더와 데이터 두 부분으로 나뉘게 된다.

패킷이 수송되는 과정은 다음과 같다.

우선 TCP에서 헤더를 만들고 송신 장치에서 패킷을 생성한다.

생성된 패킷은 다음 중계 장치로 이동하게 되고, 이동된 패킷의 헤더를 다음 장치가 분석하여

다음 전송 장치로 헤더를 포함하여 다시 전송하게 된다.

  • 즉 하나의 전송장치나 계층을 지날때 마다 헤더가 추가 되고, 다음 장치로 보내지게 되는것
  • 이때 송신장치는 리퀘스트 메세지를, 수신장치는 리스폰드 메세지를 보내기 때문에 양쪽의 기기는 ‘엔드노드’가 된다.

즉 정리하자면

  1. 라우터가 목적지를 확인하여 다음 라우터로 보낸다.

    = IP가 목적지를 확인하여 다음 IP 중계 장치로 보낸다.

  1. 허브가 서브넷 안에서 패킷을 운반하여 다음 라우터에 도착한다.

    = 서브넷 안에 있는 이더넷이 중계 장치 까지 패킷을 운반한다.

TCP/ IP 헤더

tcp IP의 헤더는 크게 두가지로 나뉜다.

  1. MAC 헤더 (이더넷용 헤더)
  1. IP 헤더 (IP용 헤더)

IP헤더

IP헤더는 패킷의 목적지가 되는 IP주소를 담고 있는 헤더이다.

이를 통해서 그 방향에 있는 라우터를 조사하게 된다.

MAC헤더

MAC헤더는 라우터에 할당된 MAC주소를 내포하고 있는 헤더이다.

이를 통해서 정확히 어느 이더넷으로 패킷이 보내져야 하는지 알게된다.

즉, MAC헤더는 다음 라우터를 지칭하고있으며 IP헤더는 우리가 갈 최종 목적지인 IP주소를 내포하고 있다.

따라서, MAC주소를 계속해서 따라가 허브→라우터→해당 이더넷 으로 이동하며

이더넷 내부의 IP 주소를 찾아 서버로 접속하게 되는것이다.

패킷의 송 수신 동작

패킷은 정확히 TCP/UDP에서 생성되고, IP담당부분에 전달되어 IP담당부분에서 패킷을 송출하게 된다.

이렇게 송출된 패킷은 허브나 라우터를 통해서 전달되기 때문에 사실상 패킷을 전달하는 역할은 허브와 라우터가 하게된다.

패킷의 송 수신동작은 다음과 같다.

  1. TCP는 IP담당부분에게 패킷을 전달할때 TCP헤더를 추가해서 보내준다.

    TCP헤더에는 IP와 패킷의 내용물이 포함된다.

    이를통해 해당 IP에게 보내주세요~ 하고 알려주는것이다. (헤더를 포함하여)

  1. IP담당부분은 IP헤더와 MAC헤더를 추가한다.
  1. 이렇게 만든 패킷을 네트워크용 하드웨어에 전달한다(IP담당부분이). → 물리계층(LAN어댑터)
  1. 패킷은 0과 1의 전기신호로 바뀌어 케이블에 송출된다.

IP헤더의 내용

IP헤더는 TCP헤더 앞에 붙게 되는데, 다양한 제어정보를 내포하고 있다.

그중에서 가장 중요한것이 IP주소인데, 이 IP주소는 TCP담당 부분이 IP담당부분에게 TCP헤더를 넘겨줄때, 함께 전달해주는 IP값을 받아서 IP담당부분이 IP헤더에 포함시키게 된다.

  • IP주소는 송신처의 IP, 수신처의 IP 모두 내포하고 있다.
  • 송신처의 IP주소는 다양한 LAN 어댑터를 가지고 있다면, 복수의 IP주소를 가지기 때문에 이를 따로 판단해야 한다. 즉 여러개의 LAN이있어도 하나의 IP주소만을 기록하게 되는것이다.

경로표

패킷을 건내줄 상대, 즉 다음 라우터나 허브를 판단하는 기준은 경로표 라는 IP용 표를 사용하게 된다.

이 내용은 3장에서 자세하게 다루게 된다.

프로토콜 번호

IP헤더에 포함되는 내용이며 프로토콜 번호로,

TCP에서 의뢰받았는지 UDP에서 의뢰받았는지를 구분하는 번호이다.

MAC헤더

이더넷은 TCP/IP라는 개념이 없다.

따라서 이더넷 상의 주소의 개념이 바로 MAC주소이며, 이를 통해서 다음 이더넷의 수신처를 알수있게된다.

MAC헤더는 3개의 내용을 내포하고 있다.

  1. 수신처의 MAC 주소
  1. 송신처의 MAC 주소
  1. 이더 타입

이더타입

송신처의 MAC주소

Rom에 저장되어있다.

수신처의 MAC주소

MAC헤더를 생성하는 시점에서는 우리가 보낼 수신처의 MAC주소를 알수가 없다.

하지만 수신처의 MAC주소를 알아야 다음 패킷을 보낼 장소를 알기 때문에 이를 경로표에 기록된 IP값과 동일한 기기를 찾게된다.

이 찾는방법은 허브에 GateWay 라는 경로표와 동일한 테이블에서 IP를 매칭하해서 MAC주소를 가져오게 된다.

하지만 이 방법으로 MAC주소를 가져오지 못한다면 ARP를 사용하게 된다.

ARP

ARP란 1장에 설명했던 브로드캐스트를 통해서, 해당 라우터나 허브에 연결된 기기 전체에 검색하고자 하는 MAC주소를 요구하게 되고, (IP주소와 동일한 값의) 이를 리턴받는 행위를 의미한다.

이때, 계속해서 패킷을 보내게 되면 ARP의 패킷이 불어나기 때문에 ARP캐시를 사용하는것으로 문제를 해결한다.

하지만 기존의 캐시와 동일하게, IP값이 변경되거나 하면 문제가 발생할수 있으니, 적당한 시간이 지나면 삭제하도록 하고 이 시간은 해당 OS내부의 정책으로 설정하게 된다.


Uploaded by N2T

반응형