SECTION
article thumbnail

 


: TCP/IP 프로토콜 슈트의 전송계층에는

: 전송제어 프로토콜(TCP)과 사용자 데이터그램 프로토콜(UDP) 이라는 두 주요 프로토콜이 있음

 

 

- TCP (Transmission Control Protocal)

 

: 기능이 풍부하고, 연결형이며 신뢰 할 수 있는 TCP/IP 애플리케이션을 위한 전송 계층 프로토콜임

: 동시에 단일 IP 주소를 사용할 수 있도록 하는 전송 계층 주소지정 방법을 제공

: 한 쌍의 장비가 가상 연결을 수립하고 양방향으로 데이터를 전달 가능케함

: 전송은 특수한 슬라이딩 윈도우(sliding window) 시스템으로 관리됨

: 추가적으로 장비 간의 흐름 관리, 기타 특수 상황을 처리하기 위한 추가 기능도 제공

 

- UDP (User Datagram Protocal)

 

: 매우 단순한 전송 프로토콜

: TCP와 유사한 전송 계층 주소지정 방법을 사용함

: UDP는 애플리케이션이 IP에 접근할 수 있도록 하는 래퍼 프로토콜에 가까움

: UDP에서는 연결이 수립되지않고, 전송도 신뢰할 수 없으며, 데이터가 손실될 수 있음

 

TCP, UDP 를 비교한 표

 

 


 

: TCP/IP는 여러 애플리케이션이 한 장비의 동일한 IP 소프트웨어를 사용하여 동시에 송수신을 할 수 있도록 설계됨

: 따라서 여러 출처에서 온 데이터를 다중화 하여 IP 계층으로 전달해야 함

: IP 데이터그램 스트림을 수신할 때에도 그것을 역다중화 하여 각 어플리케이션 소프트웨어 인스턴스에게 적절하게 데이터를 제공해야 함

 

 

TCP/IP에서의 프로세스 다중화와 역다중화

: 4개의 어플리케이션이 클라이언트와 서버 머신 사이에서 통신하는걸 보여줌

: 4개의 어플리케이션은 다중화 기능을 이용하여 동일한 IP 소프트웨어와 물리적 연결을 사용함

: 수신 데이터는 역다중화되어 적절한 어플리케이션으로 전달됨

: IP, TCP, UDP는 각 어플리케이션에서 온 데이터를 분리하여 관리하는 방법을 제공함

 

: 어플리케이션 프로세서의 동시성과 데이터의 다중화는 TCP/IP에서 상위 계층 주소지정이 나오게 된 원인임

 


 

- TCP/IP 포트 : TCP/UDP 주소지정

 

- 포트를 이용한 다중화, 역다중화

 

: 프로세스들은 TCP나 UDP를 통해 송신할 데이터를 생성한 뒤 IP에게 전달 함

: 어떻게 IP 데이터그램들을 다중화 하여 여러 APP으로 보낼 수 있는지 알아야함

=> 각 IP 데이터그램의 헤더에 포함된 프로토콜 필드(데이터그램을 IP로 송신한 프로토콜)에서 찾을 수 있음

 

: APP의 전송 계층에서는 TCP나 UDP를 사용하기 때문에 수신 데이터그램의 프로토콜 필드는 IP에게 TCP와 UDP중 어디 데이터그램을 보낼지 알려줌

: 결국 TCP나 UDP가 데이터를 어떤 프로세스로 보낼지 결정을 해야함

=> 추가적인 주소지정 구성요소가 필요함 

 

: 주소 요소는 IP 주소 내에서 좀더 구체적인 위치(소프트웨어 프로세스)를 식별 할 수 있도록 함

: TCP/IP 에서는 이러한 전송 계층 주소를 Port(포트)라고 부름

 

 

- 출발지 포트와 목적지 포트

 

: UDP와 TCP 메시지에는 출발지 포트와 목적지 포트라는 두 개의 필드가 있음

: 이들 포트는 출발지 머신의 출발지 프로세스와 목적지 머신의 목적지 프로세스를 식별함

: TCP나 UDP 소프트웨어는 전송 전에 이 값을 채움

 

: TCP, UDP 포트번호는 길이가 16bit임 (0~65535)

: TCP와 UDP는 동일한 범위의 포트를 사용함 그러나 독립적임

: 이론적으론 UDP 포트번호 77 이랑 TCP 77 포트번호 77가 가리키는 것이 다를 수 있음

 

TCP/UDP 포트를 이용한 TCP/IP 프로세스 다중화/역다중화

: 2개의 APP은 TCP를, 나머지 2개는 UDP를 사용함

: 클라이언트의 각 APP은 구체적인 TCP나 UDP 포트번호를 이용해 메시지를 송신함

: 서버의 UDP나 TCP 소프트웨어는 이들 포트번호를 이용해 데이터그램을 적절한 APP 프로세스로 전달함

 

 

: TCP/IP의 어플리케이션 프로스의 다중화/역다중화는

: IP의 프로토콜 필드와 TCP/UDP의 출발지포트/목적지포트 필드를 통해 구현됨

 

 

- TCP/IP 애플리케이션 할당과 서버 포트 범위

 

: 클라이언트 장비가 TCP/IP 서버에 좀더 쉽게 연결을 수립할 수 있도록 하기 위해 널리 쓰는 APP의 서버 프로세스는 예약된 포트번호를 사용함

: 클라이언트는 기본적으로 그 예약 포트번호를 사용하도록 설정되어 있음

 

: 포트번호는 세 개로 구분 됨

1) 범용 어플리케이션에 쓰이는 유명 포트번호

2) 기타 어플리케이션에 쓰이는 등록 포트번호

3) IANA에 등록할 필요 없이 사용할 수 있는 사설/동적 포트번호

 

- 임시 포트번호 할당

: 서버 프로세스는 유명 포트번호와 등록포트번호를 필요로 함

(클라이언트가 연결을 초기화 하기위해선 서버의 포트번호를 알아야함)

: 클라이언트 프로세스가 UDP나 TCP통신을 초기화 할때마다 TCP/IP 소프트웨어는 그 통신에 사용할 임시 포트를 할당

: TCP/IP 소프트웨어는 이들 포트번호를 가상 랜덤 방식으로 할당함

 

TCP/IP 클라이언트/서버 애플리케이션 포트 동작 방식

: 대부분의 TCP/IP 클라이언트/서버 통신에서 클라이언트는 랜덤 임시 포트번호를 사용

: 그 다음 서버 IP 주소의 예약 포트번호로 요청, 서버는 요청의 출발지 주소로 응답

 

 

 

- TCP/IP 소켓

 

: 어플리케이션 프로세스를 전반적으로 식별하기 위해선 동작하는 호스트의 IP주소와 할당받은 포트번호가 필요함

: 결합한것을 소켓 이라고 부름

 

: 소켓은 <IP 주소>:<포트번호>로 표현됨

: 각 장비는 특정 시간에 여러 활성화된 TCP 연결을 가질 수 있음

: 각 연결은 클라이언트 소켓과 서버 소켓의 조합으로 유일하게 식별됨

 

 

2부에서 이어서 작성


 

profile

SECTION

@SectionR0

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그