NULLNULL한 개발자님의 강의 및 구글링을 통해 찾은 자료를 바탕으로 기록합니다.
단순히 글을 옮겨적는 것이 아닌 제가 이해한 것을 바탕으로 저만의 설명을 적습니다.
LAN
- 하드웨어 계층에서 설명되는 네트워크
- MAC 주소에 기초하여 작동하는 네트워크
WAN
- 소프트웨어 계층에서 설명되는 네트워크
- IP 주소에 기초하여 작동하는 네트워크
데이터는 상위계층에서 하위계층으로 내려갈수록 헤더가 붙어 내려오게 된다. 이를 encapsulation
이라고 한다. (각 계층에 대한 데이터 단위는 이전글에서 설명하였다)
가장 상위 계층부터 생각해보자. 특정 process가 socket에 I/O를 시도하게 되면 TCP 계층에서 메모리에 저장된 stream
형식의 데이터를 일정 단위로 끊는 segmentation
을 진행하여 segment
형식으로 만든다. 이 때 tcp 헤더가 붙어 세그먼트가 완성될 것이다.
이후 IP 계층으로 내려가보자. 이 때에도 IP 헤더가 추가로 붙어 인캡슐레이션을 진행한다. 참고로 여기서 짚어볼 점은 패킷의 MTM이 1500이고 IP헤더와 TCP헤더가 각각 20바이트라면 실제 페이로드 부분은 1460바이트가 될 것이다. 즉, stream
에서 segmentation
을 진행할 때 1460바이트 이하로 데이터를 잘랐음을 역으로 유추해볼 수 있다.
택배를 보내는 과정을 생각해본다면
segment
packet
frame
또 패킷을 얘기할 때 언급되는 용어가 있는데 바로 deep packet inspection의 약자인 DPI
이다. 이는 짧은 시간 안에 패킷 내부 컨텐츠를 검사하는 패킷 분석기술을 일컫는다.
PC는 유선 NIC의 경우 랜선을 통해 네트워크와 연결된다. 이 때 랜선 HW계층이므로 가장 먼저 L2 switch와 연결될 것이다.
L2 Switch는 크게 두 가지로 나뉘는데
L2 Access
L2 Distribution
L2 Access는 그림과 같이 end-point와 직접 맞닿아 있는 스위치이고,
L2 Distribution은 Access와 연결되는 스위치이다.
여기서 Uplink
라는 개념이 나오는데,
이는 트래픽이 더 넓은 방향으로 뻗어있는 라인을 의미한다.
더 쉽게 설명하자면 상위 계층으로 스위칭 되는 선을 의미한다.
사진을 보면 L2 Access에서 L2 Distribution으로 가는 선이 상위계층으로 연결하는 Uplink임을 알 수 있다. 여기서 더 상위계층으로 간다면 L2 Distribution에서 Router을 연결하면 되겠다.
🏘 건물에 비유해보자면 L2 Access는 방 하나, L2 Distribution은 한 층이고, Router는 건물 하나당 한 개 존재하는 장치이다. (예외도 존재)
⛔️ Uplink와 Link-up을 헷갈리면 안 된다. 이 둘의 개념은 완전히 다르기 때문이다. uplink는 위에서 설명한 것과 같고, Link-up은 랜케이블이 들어오고 녹색불이 들어온 것을 의미한다. 반대로 Link-down은 랜케이블이 빠진 것을 의미한다.
IP 헤더 포맷은 위와 같다. (물론 Data영역은 Payload를 의미하므로 위 사진은 정확히 말하면 IP 패킷 전반을 그리고 있다.)
version
: 보통 IPV4 주소체계를 사용하므로 4bit 사용IHL
: IP Header Length의 약자로 IP 헤더의 전체 길이를 나타냄. IHL의 필드값은 4비트 단위로 헤더길이를 나타내기 때문에 필드 값이 5일 경우 4비트*5=20비트 임을 나타낸다.total length
: IP 패킷(헤더+페이로드)의 총 길이를 의미Identification
: 패킷의 순서를 식별하는데 사용되는 고유 번호 즉, 말그대로 식별자이다Flags
: 패킷이 단편화되었을 때, 패킷이 남았는지 끝났는 지 알려주는 플래그 필드 값Frgment offset
: 패킷이 단편화되었을 떄, 해당 필드 값을 바탕으로 올바른 순서로 재구성함