네트워크 - 패킷
[패킷이란?]
1. 패킷?
- 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록을 의미한다.
- 즉, 컴퓨터 네트워크 상에서 데이터를 주고받을 때 정해놓은 규칙을 의미한다.
- 정보를 보낼 때 특정 형태를 맞춰 보내는 것을 패킷이라고 한다.
- 데이터를 주고 받을 때 네트워크를 통해서 전송되는 데이터 조각을 패킷이라고 생각하면 된다.
2. 데이터를 한 번에 보내지 않는 이유는?
- 큰 데이터는 큰 대역폭을 차지한다고 생각하면 된다. 그렇기 때문에 데이터의 흐름을 원활하게 하기 위해 패킷을 사용해 데이터를 쪼개서 특정 형식에 맞춰 보내고 있다.
3. 패킷 구조
3-1. PDU: Protocol Data Unit
- L4 pdu - segment라고 부르며 TCP/UDP가 이에 해당한다.
- L3 pdu - Packet이라고 부르며 IP | TCP | DATA 로 이루어져 있다.
- L2 pdu - Frame이라고 부르며 Ethernet(MAC) | IP | TCP | DATa로 이루어져 있다.
[물리적 환경에서의 데이터 전송 - L2]
0. 가정 상황
- 두대의 컴퓨터가 같은 네트워크를 사용하고 있다고 할 때 LAN을 이용해 직접 연결한 상황을 가정해보자.
1. 직접 연결한 경우
- 물리적인 계층에서 데이터를 전송한 것과 동일하기 때문에 해당 작업은 이더넷과 같은 프로토콜을 사용해서 데이터를 직접적으로 전송합니다.
1-1. 패킷 구조
2. 스위치를 추가해 연결한 경우
- 스위치를 추가해준다는 뜻은 동일 네트워크라는 의미다.
- 동일 네트워크에 스위치를 추가함에 데이터 흐름을 제어할 수 있고 전송 효율을 높일 수 있고 네트워크 분할과 장비 연결을 한 네트워크에서 연결할 수 있다는 장점이 있기 때문에 이를 연결해 사용한다.
- 해당 작업도 물리적인 환경에서의 데이터 전송이라 layer 2에 해당합니다.(L2)
[네트워크 계층에서의 데이터 전송 - L3]
0. 가정 상황
- 같은 네트워크를 사용하는 두대의 컴퓨터가 스위치로 연결되어 있다.
- 서로 다른 네트워크를 사용하는 3번째 컴퓨터를 연결하기 위해 중간에 라우터를 넣어 사용하고 있다.
1. 라우터를 이용해서 다른 네트워크끼리의 데이터 전송
- 같은 네트워크는 스위치로 연결하고 있다.
- 서로 다른 네트워크를 쓰는 PC7에 데이터 전송을 위해 router를 추가해 연결한다.
1-1. 데이터 전송
- PC 5에서 PC 7로 데이터를 전송하고 싶은 상황이라면?
- 이때 MAC 주소를 모른다면?
1-2 ARP 프로토콜 출동 ~
- 우선은 라우터까지 가는데 이때 MAC 주소 확인을 위해서 동일 네트워크의 MAC 주소 역시 확인하며 진행한다. (broad cast) -이때는 data부분에 ARP 프로토콜이 들어가 해당 작업을 수행한다.
- ARP 프로토콜의 경우엔 MAC 주소를 우리가 모를 때 동작하는 프로토콜로 브로드캐스트 방식을 사용해 모든 서버에 접속해 MAC 주소를 비교하고 destination IP와 동일한 Ip를 가진 것이 있다면 이를 돌려준다.
1-3. 라우터까지 MAC주소 확인하면서 도착
- 이때 라우터에 도착하고 해당 라우터는 패킷이 도착할 곳의 ip를 기반으로 라우팅 테이블을 참조해 목적지 IP주소와 관련된 정보를 찾는다.
- 해당 패킷에서는 MAC header가 벗겨지게 된다.
- 그리고 또 라우터가 만약 있다면 계속 MAC header가 만들어지고 다음으로 도착하면 벗겨지고 하는 식의 구조로 전해진다.
- 후에 우리가 찾는 IP에 MAC주소를 찾았다면 해당 정보를 넘겨주고 unicast 방식으로 데이터를 전송합니다.
[정리]
- 계층별로 해당 데이터가 전달되는 형식이 다르다, 그리고 중간에 어떤 일이 있느냐에 따라서 해당 Protocol도 상이하게 사용한다.
- 해당 작업이 라우터가 몇개가 있고 이런 구조에 따라서 패킷 형식이 추가되고 사라지는 등의 여러 동작이 다양하게 발생한다.