OSI 7 Layer Model

OSI 7 Layer 란 컴퓨터 네트워크 및 통신을 7개의 계층으로 표현한 모델이다. 각 계층은 하위 계층의 기능을 활용해 역할을 수행하고 상위 계층으로 처리 결과를 전달한다.
TCP/IP 4 Layer Model
TCP/IP 4 Layer 란 우리가 실제로 통신에 사용하는 네트워크 모델이다.
L1, Physical Layer
- 장치를 연결하기 위한 전압, 주기, 시간, 전선의 규격, 거리 등 매체의 물리적인 사항을 정의하는 계층이다.
- Bit 단위가 사용된다.
- 대표 구성 요소: 케이블/안테나 등 전송 매체, 허브, 리피터
허브
- Physical Layer 단위에서 기기들을 연결해주는 장치
- 에러 / 충돌 / 디바이스 별 제어 기능이 없다.
- 받은 내용을 그대로 전달. 즉, 무조건 Broadcast 만 한다.
L1, Physical Layer 의 문제
- 충돌
- Broadcast 만 가능. 즉, 대상을 지정해서 전달할 수 없다.
L2, Data Link Layer
- 물리적인 통신을 제어하여 기기간 통신 및 전송을 안정화 하기 위한 프로토콜
- Frame 단위가 사용된다.
- src, dst MAC 주소를 포함
- 주요 구성 요소: Mac Address, Switch
MAC(Media Access Control) Address
- 네트워크 인터페이스에 부여된 고유 주소
- 데이터가 지정한 대상에게 잘 전달될 수 있도록 대상 식별에 사용한다.
- 즉, 네트워크 인터페이스 식별자 == MAC 주소
- 네트워크 인터페이스의 MAC Address 는 고유의 값이며 변하지 않는다.
- IP 는 변동한다.
- 2개의 Hexadecimal 단위로 6개를 나열한다. 48 bits == 6 bytes
- e.g. 00:1A:2B:3C:4D:5E
- 첫 3개의 bytes 는 OUI, Organizationally Unique Identifier: 제조사에 부여된 고유 식별자
- 끝 3개의 bytes 는 NIC, Network Interface Controller: 네트워크 인터페이스 별 고유 번호
- FF:FF:FF:FF:FF:FF 는 Broadcast 주소
Switch
- CSMA/CD, Carrier-Sense Multiple Access with Collision Detection 방식을 활용해서 각 기기간 통신을 원할하게 연결하고 대상을 구별하여 통신하는 Unicast 를 지원하고 Broadcast 역시 지원한다.
- Collision 발생 시 Switch 내부 Frame Storage 에 저장해뒀다가 일정 시간 대기 후 재송신한다.
L2, Data Link Layer 의 문제
- 로컬 네트워크 외부로 통신이 불가능
L3, Network Layer
- 여러 노드의 경로를 찾고 올바르게 전달 될 수 있는 기능과 수단을 정의한다. 서로 떨어진 Local Network 간의 통신을 위해 중간중간 노드들을 거쳐서 목적지까지 도달할 수 있는 방법을 지원한다.
- Packet 단위가 사용된다.
- 주요 구성 요소: IP Address, Router, ARP
IP Address
- 03. IP 프로토콜 상에서 통신 주체를 식별하기 위한 아이디
- 03. IP > IPv4 와 IPv6 2가지 종류로 이루어져 있다.
- MAC Address 와 달리 수시로 변동 가능하다.
Router
- 네트워크간 패킷을 주고 받는 L3 장치
- IP 대역별 최적 경로를 수집 및 관리한다.
- 어떤 경로의 노드를 경유해야 가장 효율적으로 대상에 도달하는지 알고 있음
- 이 경로를 바탕으로 특정 IP 주소가 대상인 패킷의 전달을 요청받을 때 해당 경로로 요청
- 로컬 네트워크는 자신의 로컬 네트워크 주소가 아니라면 라우터로 전달
- 이후 라우터는 패킷을 Frame 안에 넣어서 최적 경로에 따라 다른 라우터로 전달
- IP 주소에 따른 Frame 확인 방법: ARP
ARP, Address Resolution Protocol
- IP 로 Mac 어드레스를 찾는 프로토콜
- Broadcast 로 IP 요청 후 응답 받은 IP MAC Address 를 기반으로 MAC 확정 후 테이블에 저장
L3, Network Layer 의 문제
- 여러 애플리케이션이 동시에 통신 불가능
- 패킷 순서 보장 / 유실에 대한 대응 불가능
L4, Transport Layer
- 통신 주체끼리 패킷의 순서 보장, 에러 처리, 포트 기반 분할 등의 방법을 통해 데이터 전달의 신뢰성을 확보
- Segment 단위가 사용된다.
- 주요 구성 요소: TCP/UDP
Segment
- TCP/UDP 의 데이터 전달 단위
- TCP 세그먼트의 구성
- Src/Dst Port
- Seq/Ack Number: 통신 주체간 데이터를 주고 받았는지 확인에 사용
- Flags: 세그먼트의 목적을 정의 (e.g. SYN, ACK, FIN)
- 04. TCP & UDP > Window-Size
- CheckSum
- Urgent Pointer: 세그먼트의 중요도를 설정
- Payload
- UDP 세그먼트의 구성
- Src/Dst Port
- Length
- CheckSum
- Payload
Port
- IP 프로토콜에서 패킷을 올바른 프로세스로 라우팅하기 위한 논리적 단위
- TCP Port / UDP Port 로 구분되며 각각 0~65535 까지 정수 범위를 가진다
- Well Known Port: 주로 서버에서 사용하는 애플리케이션/프로토콜 별로 미리 지정된 포트
- TCP:
- HTTP/HTTPS: TCP 80, 443
- FTP: TCP 20, 21
- SSH: TCP 22
- DNS: TCP 53
- UDP:
- DNS: UDP 53
- DHCP: UDP 67, 68
- VoIP: UDP 5060
- TCP:
L5, Session Layer
- 통신 주체간 연결을 유지할 수 있는 방법을 정의
- L1-4 이상의 차원에서 지속적인 세션 연결을 수립할 수 있는 방법을 제공
- MAC, IP, Port 가 동일한 상황에서 유저를 구분할 방법
- e.g. HTTP Cookie
- FTP 같은 몇몇 프로토콜의 경우 L5 자체를 구현하지 않는다.
L6, Presentation Layer
- 받은 데이터를 해석하는 방법을 정의한다. 파싱, 압축 해제, 복호화 등 L7 에서 사용할 수 있는 형식으로 변환을 담당한다.
- e.g. HTTP Content-Encoding: gzip 등
L7, Application Layer
- 실제 받은 데이터를 처리하는 방법을 정의한다. 말 그대로 데이터를 가지고 무엇을 어떻게 처리할지
- e.g. HTTP 의 경우
- Method
- Status Code
- Header