Computer Science/네트워크 (Network)
네트워크 | TCP/IP Updated 모델 (5계층 모델)
hyuga_
2024. 1. 6. 21:14
이전에 TCP/IP 모델 이론에 대해서 공부한 적이 있다.
- 네트워크 모델 | (1) OSI 모델, TCP/IP 모델 개요
- 네트워크 모델 | (5) 데이터 단위와 흐름 이해하기
- 네트워크 모델 | (6) TCP/IP 데이터 흐름 더 깊게 이해하기 (feat. Buffered I/O)
최근 관련 자료들을 찾아보던 중, TCP/IP 모델이 4계층이 아니라 5계층으로 이루어진 TCP/IP Updated 모델로 진화(?)했음을 알게 되었다. 네트워크 과목을 전공서로 공부하진 않았는데, 최근 전공서에는 그렇게 서술되어 있는듯? 처음 등장했을 때처럼 DARPA 같은 특정 기관에서 공식 발표한 건 아니고, 조금 더 현대의 인터넷 체계에 적합하도록 점진적으로 인식이 바뀌어온 듯 싶다.
따라서 이를 체크하고 넘어가고자 한다. 큰 틀은 이전에 다 적었던거라, 복기할 겸 간단하게만!
바뀐 점
여기서, Network Access로 퉁쳤던 L2를 OSI 모델과 동일하게 L1, L2로 분리되었다. 이게 다다. (L3는 원래 Internet으로 표기하는 곳이 많은데, 그렇다면 Internet 계층도 Network 계층으로 이름이 바뀐 셈이다. 나는 바뀌는 중간에(?) 있는 자료를 토대로 공부했었나보다.)
이에 따라서, Updated TCP/IP model은 다음 5계층으로 이루어진다.
[Application -> Transport -> Network -> DataLink -> Physical]
TCP/IP 5계층 (Updated)
1. 응용 계층 (Application Layer)
- 역할: 사용자와 직접 상호작용하는 애플리케이션과 프로토콜이 이 계층에 속합니다. 이 계층은 웹 브라우저, 이메일 클라이언트, 게임 등 사용자가 직접 사용하는 모든 소프트웨어 응용 프로그램을 포함합니다.
- 프로토콜 예시: HTTP(Hypertext Transfer Protocol), HTTPS(HTTP Secure), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol), DNS(Domain Name System) 등.
- 기능: 사용자의 데이터를 네트워크에 적합한 형태로 변환하고, 반대로 네트워크로부터 수신된 데이터를 사용자에게 제공할 수 있는 형태로 변환합니다
- 데이터: Stream (Payload)
2. 전송 계층 (Transport Layer)
- 역할: 데이터의 신뢰성 있는 전송을 책임지며, 데이터를 세그먼트로 나누고, 이를 네트워크 계층으로 전달하기 전에 적절한 포트 번호를 할당합니다.
- 프로토콜 예시: TCP(Transmission Control Protocol), UDP(User Datagram Protocol).
- 기능: 흐름 제어, 혼잡 제어, 오류 검출 및 복구 등을 담당합니다. TCP는 연결 지향적이고 신뢰성 있는 데이터 전송을 제공하는 반면, UDP는 연결 없이 데이터를 전송하며 신뢰성 보다는 속도를 중시합니다.
- 데이터: Segment [TCP 헤더(Port 번호), Payload]
3. 네트워크 계층 (Network Layer)
- 역할: 데이터 패킷의 라우팅과 전달을 책임집니다. 이 계층은 패킷이 송신자로부터 수신자까지 어떤 경로를 통해 이동할지 결정합니다.
- 프로토콜 예시: IP(Internet Protocol), ICMP(Internet Control Message Protocol), IGMP(Internet Group Management Protocol).
- 기능: 패킷의 주소 지정, 경로 결정(라우팅) 및 패킷 전달. IP 주소를 사용하여 각 패킷이 올바른 목적지로 전송될 수 있도록 합니다.
- 데이터: Packet [IP 헤더(IP 주소), TCP 헤더(Port 번호), Payload]
4. 데이터 링크 계층 (Data Link Layer)
- 역할
- 이 계층은 데이터를 프레임으로 포장하고, 이를 통해 물리 계층으로 전달한다.
- 프레임으로 포장하는 이유는, 데이터를 어떻게 끊어읽어야 할지 정확히 구분하기 위함이다. 이는 데이터 앞 뒤에 특정한 비트열을 붙임으로써 이루어진다.
- 프레이밍, 물리적 주소 지정(MAC 주소), 흐름 제어, 오류 검출 및 오류 수정. 데이터 링크 계층은 네트워크의 물리적 주소를 사용하여 직접 연결된 노드 간에 데이터를 전송합니다.
- 데이터: Frame [비트열, IP 헤더(IP 주소), TCP 헤더(Port 번호), Payload, 비트열]
5. 물리 계층 (Physical Layer)
- 역할
- encoding: 디지털 신호(0과 1의 나열)을 전선으로 보낼 수 있는 아날로그 신호(주파수)로 바꾸고
- decoding: 전선으로 들어온 아날로그 신호(주파수)를 디지털 신호(0과 1의 나열)로 변환하는 역할을 수행한다.
- 즉, 물리적으로 연결된 두 대의 컴퓨터가 0과 1로 이루어진 데이터를 주고받을 수 있도록 하는 모듈이다.
- 이 과정은 함수와 같이 [input(디지털신호) -> output(아날로그신호)]로 표현할 수 있는데(혹은 그 반대), 이는 소프트웨어로 구현되어 있는게 아니라 하드웨어 칩으로 구현되어 있다. (대표적으로 PHY 칩)
- 두 노드 사이를 연결하는 구리 케이블(Ethernet), 광케이블, 물리적 직접 연결은 아니지만 무선 신호(와이파이, 블루투스)도 해당 계층의 기술로 분류된다.