트랜스포트 계층(Transport Layer)란?
인터넷은 매우 크고 복잡한 구조를 가지고 있다
이로써, 인터넷은 계층화되어서 설계가 되었는데,
이것이 네트워크 프로토콜 계층(Network protocol Layer)이다
위 그림처럼 7개의 계층으로 나뉘어 있는데, 우리가 잘 아는 IP는 네트워크 계층이고 HTTP는 응용계층에 속한다
그리고 이제 공부할 트랜스포트 계층은 7계층에서 Layer 4에 속해있다
네트워크 프로토콜은 7계층으로 나뉘기도 하고 4계층으로 표현되기도 한다
트랜스 포트 계층(Transport Layer)
네트워크 계층과 애플리케이션 계층 사이에 있는 것처럼 트랜스포트 계층은 네트워크 구조의 핵심 역할을 한다
1. 서로 다른 호스트(Host)들이 어플리케이션 프로세스 간에 논리적 통신을 지원한다
ex) 논리적 통신을 한다는 것은 우리가 카카오톡으로 서로 메시지를 주고받을 때,
우리는 각자 다른 공간에서 카톡을 보내고 받지만 마치 두 개의 기기가 한 개의 기기가 된 것과 같이 통신을 하는 것을 말한다
2. 트랜스포트 프로토콜은 종단 시스템(End system)에서 실행한다
Send side : 메시지를 새그먼트로 쪼개서 네트워크 계층으로 보낸다
Rcv side : 메시지 새그먼트를 재조합해서 애플리케이션 계층으로 보낸다
3. 트랜스포트 계층 프로토콜(Tranport-Layer protocol)
TCP와 UDP
네트워크 계층은 호스트와 논리적 통신을 한다
통신 계층은 프로세스와 논리적 통신을 한다
ex) 10명의 자식이 있는 ann's house에서 10명의 자식이 있는 bill's house로 편지를 보내려고 한다
호스트(Hosts) = 집(houses)
프로세스(processes) = 아이들(kids)
어플 메시지(app mesg) = 봉투 안에 편지(letters in envelops)
트랜스포트 프로토콜(Transport Protocol) = 집에서 편지를 나눠주는 사람( ann and bill)
네트워크 계층 프로토콜(Network - layer protocol) = 우편배달(postal service)
TCP vs UDP
(TCP) 신뢰성이 있는 데이터 전달, 규칙적인 전송
정체 제어(Congestion control)
흐름 제어(Flow control)
연결 설정(Connection setup)
(UDP) 신뢰성이 없는 데이터를 전달, 불규칙적인 전송
정보를 주고받을 때 신호를 주고받지 않는다
데이터 전달 중 손실이 생겨도 손실이 있는 대로 처리한다
속도가 중요한 서비스에 사용된다
ex) 스트리밍 방송
다중화와 역다중화(Multiplexing/ demultiplexing)
다중화란 호스트(Host)에서 소켓으로 데이터를 모으고 헤더 정보를 더해 캡슐화해서
캡슐화된 새그먼트들을 네트워크 계층으로 보내는 작업을 다중화라고 한다
역다중화란 이렇게 네트워크 계층을 통해 도착한 트랜스포트 계층의 데이터를
올바른 소켓으로 전달하는 것을 역다중화라 한다
네트워크 계층에서 받는 쪽 Host에다가 정보를 보낸다
각 *데이터그램은(Datagram)은 sourse IP주소와 destination IP 주소를 가지고 있다
각 데이터 그램은 하나의 트랜스포트 새그먼트를 나른다
각 새그먼트는 sourse, destination port number를 가지고 있다
*데이터그램(Datagram)은 IP가 사용하는 패킷을 데이터그램이라 한다
비연결 역다중화 Connectionless demultiplexing(UDP)
데이터그램을 생성해서 UDP소켓으로 보낼 때, 꼭
목적지 IP 주소(Destination ip address)
목적지 포트 넘버(Destination port number)
를 명시해야 한다
호스트가 UDP 새그 먼트를 받을 때,
새그 먼트에 도착 포트 넘버를 확인하고해당 새그먼트 목적지 포트 넘버의 소켓으로 보낸다
즉 어떤 IP source, port를 가지고 있던 간의 목적지 IP와 port만 같다면 해당 소켓으로 보낸다
연결형 역다중화(Connection-Oriented demultiplexing)
TCP 소켓은 4가지 튜플이 있다
1. 소스 아이피 주소(Source IP address)
2. 소스 포트 넘버(Source port number)
3. 목적지 아이피 주소(Destination IP address)
4. 목적지 포트 넘버(Destination port number)
웹 서버는 연결되는 클라이언트마다 각기 다른 소켓을 가지고 있다
서버 호스트는 동시에 수많은 TCP 소켓을 지원할 수 있다
비연결형 트랜스포트(Connectionless Transport UDP)
특징
1. 간단하다
2. 최선 노력(Best-effort)이란
말 그대로 최선의 노력을 한다는 것인데,
최선의 노력을 해서 전송을 하지만 보증을 할 수 없다는 의미다
3. 손실(Lost)
사용처
스트리밍이나 멀티미디어 어플에서 사용됨
DNS
UDP Checksum
네트워크를 통해 전달된 데이터 값이 변경되었는지를 검사하는 값
새그 먼트에서 다루는데, 헤더 필드(Header fields)에 속해있고, 16-bit의 정수로 나열되어있다
새그먼트 컨텐트를 더한 값이다
Sender에서 UDP checksum 필드에 checksum 값을 넣어서 보낸다
Receiver 쪽에서 검사해본다
참조
(Computer Network) Protocol Layer
네트워크 프로토콜의 설계에 대한 구조를 제공하기 위해, 네트워크 설계자는 프로토콜을 계층으로 조직합니다. 한 계층이 상위 계층에 제공하는 서비스에 관심을 갖고, 이것을 계층의 서비스
medium.com
TCP - Segment Structure
Segment Structure (세그먼트 구조) TCP는 데이터 스트림으로부터 데이터를 받아 들여 이것을 일정 단위로 분할한 뒤 TCP 헤더를 덧붙여 TCP 세그먼트를 생성한다. TCP 세그먼트는 *IP 데이터
nogan.tistory.com
https://the-brain-of-sic2.tistory.com/51
[인터넷:원리] 트랜스포트 계층: Transport Layer: 네트워크 프로토콜
네트워크 프로토콜 인터넷은 아주 복잡하고 거대한 구조이다. 이 복잡함과 거대함이란 특성 때문에 네트워크 설계자는 인터넷을 계층화하여 설계했다. 이것이 네트워크 프로토콜 계층이다. 왜
the-brain-of-sic2.tistory.com
https://seungjuitmemo.tistory.com/83
네트워크: Transport layer 정리 (TCP/UDP, 다중화/역다중화, 신뢰적 데이터 전송의 원리(RDT))
< 전송계층(Transport layer)이란? > 서로 다른 호스트들의 process들은 전송계층(Transport layer)를 통해 logical한 communication을 주고 받는다. 호스트 사이에서의 통신이므로 전송계층은 end-system위에서..
seungjuitmemo.tistory.com