TCP/IP 4 계층

TCP/IP란?

TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형이다.

네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7 계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4 계층이다.

TCP/IP 계층은 OSI 계층과 비교하여 어떤 점이 다른지 알아보자.

TCP/IP 계층 단계

지난 시간에 사용하였던 그림을 다시 가져와 보겠다.

OSI-7-Layers-vs-TCP/IP-4-Layers

OSI 계층과는 다르게 TCP/IP 계층은 4계층이 전부이다.

이렇게 서로의 간섭을 최소하하여 사용의 편리성을 높힌다.

  • 호환성 보장(다른 제조사 장비들도 통신 가능)으로 인한 비용 절감
  • 쉬운 문제 해결(계층별로 문제 확인 가능)
  • 다른 계층 간의 간섭이 없어 데이터의 캡슐화와 은닉 가능

네트워크 인터페이스 계층(Network Interface Layer)

물리적으로 데이터가 네트워크를 통해 Node-To-Node간 신뢰성 있는 데이터 전송을 담당하는 계층이다.

OSI 7 계층의 물리 계층과 데이터링크 게층의 역할을 담당한다.

논리주소(IP주소, 등)이 아닌 컴퓨터 하드웨어 주소인 물리주소(MAC주소)를 참조해 장비간 전송한다.

기본적으로 에러검출 / 패킷의 프레임화를 담당하고, 프레임(Frame)단위의 데이터를 구성한다.

LAN상에서는 Ethernet, TokenRing, FDDI 등이 있으며 WAN 상에서는 X.25, Frame Relay, PPP 등이 있다.

인터넷 계층(Internet Layer)

네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하는 OSI 7 계층의 네트워크 계층을 담당한다.

단말을 구분하기 위한 논리적인 주소(Logical Address) IP를 할당한다.

호스트간 경로를 설정하는 라우팅(Routing) 기능을 처리하고, 패킷단위의 데이터를 구성한다.

패킷단위 : 세그먼트를 목적지까지 전송하기 위한 시작 주소와 목적지의 논리적 주소를 붙인 단위. 데이터 + IP Header

대표적 프로토콜

  • IP(Internet Protocol) : 비신뢰성, 비연결지향 데이터그램 프로토콜

  • ARP(Address Resolution Protocol) : 주소변환 프로토콜, IP주소를 MAC주소로 변환하는 프로토콜

  • RARP(Reverse ARP) : MAC주소로 IP주소를 찾는 프로토콜

  • ICMP(Internet Control Message Protocol) : 상태 진단 메시지 프로토콜, 대표적인 프로그램 ping

  • IGMP(Internet Group Message Protocol) : 멀티캐스트용 프로토콜

전송 계층(Transport Layer)

프로세스간의 신뢰성 있는 데이터 전송을 담당하는 계층으로 통신 노드 간의 연결 제어 및 자료 송수신을 담당한다.

응용 계층의 세션과 데이터그램 통신서비스를 제공하고, 세그먼트(Segment)단위의 데이터를 구성한다.

세그먼트 단위 : 실질적인 데이터 전송을 위해 데이타를 일정 크기로 나눈 것. 발신, 수신, 포트주소, 오류검출코드가 붙게된다.

process-to-process 전송을 담당하기 위해 process의 포트 번호를 논리적 주소로 사용한다.

대표적인 프로토콜

  • TCP (Transmission Control Protocol) : 신뢰성있는 연결지향형 프로토콜. 패킷에 대한 오류처리나 재전송으로 에러를 복구하여 신뢰성이 있다. 때문에 TCP의 헤더에 붙는 정보가 많다.

  • UDP (User Datagram Protocol) : 비신뢰성 비연결형 프로토콜. 패킷을 잃거나 오류가 있어도 대처하지 않다. 따라서 UDP헤더는 간단한 구조를 갖고 있다.

응용 계층(Application Layer)

사용자와 가장 가까운 계층으로 사용자가 소프트웨어 application과 소통할 수 있게 한다.

서버나 클라이언트 응용 프로그램이 이 계층에서 동작하며, 전송계층의 주소(포트번호)를 사용한다.

사용자 응용프로그램 인터페이스를 담당하며 데이터 단위는 Data/Message이다.

대표적인 프로토콜

  • HTTP (Hyper-Text Transfer Protocol) : TCP기반의 프로토콜. 포트번호 80번 사용

  • Telnet : TCP 포트번호 23번을 사용. 원격 터미널을 접속할때 사용.

  • SSH (Secure Shell) : 텔넷과 같이 비밀번호가 암호화되지 않아 그대로 노출되는 것을 보완하기 위한 프로토콜. 포트번호 22번 사용.

  • FTP(File Transfer Protocol) : 파일 전송 프로토콜. 파일을 받거나 올릴때 사용. FTP는 파일을 올리거나 내려받을때 신뢰성을 중요시하기 때문에 TCP에서 동작. 2개의 포트를 사용. 데이터 전송을 위한 TCP 포트 20번, 제어용 TCP 포트 21번 사용.

  • SMTP (Simple Mail Transfer Protocol) : 메일 전송 프로토콜. TCP 상에서 동작하며 포트는 25번 사용.

  • POP3 (Post Office Protocol Version3) : 메일 수신용 프로토콜. 아웃룩같은 프로그램이 POP3라는 프로토콜을 사용하여 동작. TCP 포트 110번 사용.

  • DNS (Domain Name System) : 도메인명에 대한 호스트 정보를 제공. 기본적으로 UDP상에서 동작. 실패하면 다시 한번 요청. 신뢰성을 요할 경우에는 TCP상에서도 동작. 데이터의 길이가 길 경우 TCP 기반으로 동작. UDP, TCP 포트 53번을 사용.

이와 같이 포트번호가 특정 프로토콜이 사용해서 우리가 쓸 수 없는 포트들을 well-known port라고 한다.

참고

Author

SSHWORLD

Posted on

2021-12-22

Updated on

2022-01-02

Licensed under

Comments