티스토리 뷰

TCP/IP 프로토콜 구조

인터넷을 통해 통신을 수행하는 개체는 크게 호스트(Host)와 라우터(Router)로 나뉜다.

  • 호스트(Host): 최종 사용자(End-user)의 응용 프로그램(Application)을 수행하는 주체로 PC, 노트북, 스마트폰, 태블릿 등이 있다.
  • 라우터(Router): 호스트에서 생성된 데이터를 여러 네트워크를 거쳐 전송함으로써 서로 다른 네트워크에 속한 호스트 간에 데이터를 교환할 수 있도록 하는 장비다.

라우터와 라우터, 호스트와 호트스가 통신하려면 서로간의 통신 절차와 방법을 정해야하는데 그것을 약속한 것을 통신 프로토콜(CommunicationProtocol)이라고 부른다.

인터넷에서 사용하는 핵심 프로토콜인 TCP와 IP를 줄여서 TCP / IP라 부른다.

응용 프로그램(Application)간의 통신을 위해서는 다양한 요구사항을 만족해야한다.

  • 통신할 대상을 지정하는 상호 약속된 방법
  • 전송 오류 확인 기능
  • 오류 발생 시 재전송 기능
  • 데이터 의 순서 관계 유지 등

통신 프로토콜은 그 종류에 따라 이러한 요구 사항 중 일부 또는 전체 기능을 제공해준다.


TCP/IP 계층 구조

통신 프로토콜은 기능별로 나누어 계층적으로 구현한다.

네트워크 접근 계층(Network Access Layer)

데이터 단위: 프레임
전송 주소: MAC

네트워크 접근 계층(Network Access Layer)은 물리적 네트워크를 통한 실제 데이터 송수신을 담당한다.

네트워크 접근 계층에서는 하드웨어적으로 정의된 물리적 주소(Physical Address)를 사용하여 통신한다.

물리적 주소(Physical Address)는 네트워크 방식에 따라 다르고 일반적으로 상호 호환되지 않는다.

인터넷 계층(Internet Layer)

데이터 단위: 패킷
전송 주소: IP

인터넷 계층(Internet Layer)은 네트워크 접근 계층의 도움을 받아 데이터를 목적지 호스트까지 전달하는 역할을 한다. 네트워크 계층의 하드웨어적으로 정의된 물리적 주소를 사용하는것과 달리 인터넷 계층은 소프트웨어 적으로 정의된 논리적 주소인 IP 주소(Internet Protocol Address)를 사용한다.

IP주소는 사설 망이나 공유하는 경우가 아니면 유일한 고유 주소를 갖는다.

IP 주소의 유일성과 하드웨어의 독립성을 기반으로 TCP/IP 프로토콜은 다양한 네트워크 기술과 하드웨어에서 작동할 수 있다.

실제 통신을 하려면 전송경로를 결정하고 그에 따라 데이터를 전달하는 라우팅(Routing) 작업이 필요하다.

  • 라우팅(Routing): 데이터를 목적지까지 전달하는 일련의 작업
  • 라우터(Router): 라우팅을 담당하는 정용 장비

전송 계층(Transport Layer)

데이터 단위: Segment
전송 주소: Port

전송 계층(Transport Layer)은 최종 통신 목적지를 지정하고 오류 없이 데이터를 전송하는 역할을 한다.

통신의 최종 목적지는 호스트가 아닌 호스트의 응용 프로그램(Application)이다. 호스트까지 데이터가 도착하고 응용 프로그램 즉, 프로세스를 식별해 해당 프로세스에 데이터를 전송해야한다.

프로세스를 지정하는 16비트 주소를 포트 번호(Port Number)라고 한다.

신뢰성

인터넷 계층의 IP가 제공하는 전송 서비스는 최선을 다하지만(Best-effort) 신뢰성은 없다.

신뢰성이 없는 예로는 데이터가 목적지에 도달하지 못하는 상황이나, 목적지에 도달해도 실제 데이터가 손상 되어있는 경우가 있다.

전송 계층에서는 인터넷 계층에서 온 데이터의 손실이나 손상을 검출하여 잘못된 데이터가 목적지에 전달되지 않도록 한다.

전송 계층에 사용되는 프로토콜로는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 있다

TCP UDP
연결형(Connection-oriented) 프로토콜: 연결 설정 후 통신 가능 비연결형(Connectionless) 프로토콜: 연결 설정 없이 통신 가능
신뢰성 있는 데이터 전송: 필요시 데이터 재전송 신뢰성 없는 데이터 전송: 데이터 재전송하지 않음
일대일 통신(Unicast) 일대일 통신(Unicast)
일대다 통신(Broadcast, Muticast)
데이터 경계 구분 안함: 바이트 스트림 서비스 데이터 경계 구분함: 데이터그램 서비스

응용 계층(Application Layer)

데이터 단위: Data/Message

응용 계층(Application Layer)은 전송 계층을 기반으로 하는 다수의 프로토콜(Telnet, FTP, HTTP, SMTP 등)과 이 프로토콜을 사용하는 프로그램을 포괄한다.

소켓으로 구현한 네트워크 프로그램도 응용 계층에 속한다.


 

데이터 전송 원리

송신 측 호스트의 응용 프로그램이 보내는 데이터를 수신 측 호스트의 응용 프로그램에 전송하려면 각 프로토콜에서 정의한 제어 정보(IP 주소, 포트 번호, 오류 체크 코드 등)가 필요하다.

제어 정보는 위치에 따라 앞쪽에 붙는 헤더(Header )와 뒤에 붙는 트레일러(Trailer)로 나뉜다.

데이터는 계층들을 거치며 헤더와 트레일러가 결합된 형태로 전송되며 이를 패킷(Packet)이라고 부른다.


참고

 

TCP/IP 소켓 프로그래밍 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

'네트워크' 카테고리의 다른 글

[네트워크] OPTIONS 메서드는 뭘까?  (0) 2024.11.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함