전송 계층( Transport Layer )
。애플리케이션 계층의Message를Client Process와Server Process간 전달 역할의프로토콜( TCP/UDP )을 포함하는 계층
▶Process-to-Process
。송 수신자간데이터 전송을 관리 및 신뢰성과 정확성을 보장
。Host와Host간 실제 전달은네트워크 계층에서 수행
▶ 목적지Host의전송 계층으로Segment를 전달하기위해 출발지Host의TCPorUDP는Segment와 목적지 주소를네트워크 계층으로 전달
전송계층 PDU:Segment( )
。전송계층 헤더( ) :송/수신자의포트번호포함
전송 계층특징
IP주소를 기반으로네트워크 계층을 통해 성립된통신위에서 실질적인 활용을 위한 다양한 기능을 정의
。세그먼트의 순서보장,에러처리등
단일 IP 주소를 가지는Host에서 구동중인 여러프로세스들에게패킷을 전달하기위해포트 기반 분할을 수행
세그먼트( Segment )
。TCP / UDP의데이터 전송 단위
。어플리케이션 계층으로부터 전달된Message( )를전송 계층에서캡슐화를 통해전송 계층 헤더( )를 부착하여Segment( )를 생성
▶전송 계층 헤더:전송 계층에서 활용할송 / 수신 포트번호등의 사용될 정보를 포함
TCP
세그먼트구성
▶ 이후네트워크 계층으로 전송 시 해당내용들을 모두 포함하여IP 패킷( =IP 데이터그램)으로캡슐화후 전송
- 포트 :
。송 / 수신 Host의포트번호를 모두 포함
Sequence / Acknowledgement Number(SYN / ACK) :
。통신 주체끼리데이터를 주고 받았는지 확인하는 용도
▶송신 Host에서수신 Host로IP 패킷전송 시수신 Host에서송신 Host로 수신했다는Acknowledgement를 전송하여IP 패킷의 손실을 방지
。TCP는SYN / ACK를 활용하여 3-way handshaking / 4-way handshaking방법을 사용하여 장치간TCP 연결을성립및종료
SYN( SYNchronize sequence numbers ) :
연결확인을 위해 전송하는무작위 숫자값의플래그 패킷
▶클라이언트 SYN 패킷 : ISNc
▶서버 SYN 패킷 : ISNs
ACK( ACKnowledgements sequence numbers ) :
상대 Host로부터 수신한SYN에1d라는키워드를 추가한플래그 패킷
▶ACK = ISNc + 1
▶ 잘수신했다는 표시용도
ISN( Initial Sequence Numbers ) :
클라이언트와서버가 각각 처음으로 생성한SYN
▶ISNs:server_isn
▶ISNc:client_isn
Flags:
。Segment의 목적 ( ex.ACK, SYN, FIN)
Window Size:
。세그먼트를 만든 주체가 얼마나 많은 데이터를 받을지 전달
▶데이터를 받을 수 있는최대 사이즈를 지정
Urgent Pointer:
。세그먼트의 처리 중요도를 설정
▶Urgent Pointer를 통해 수신된 다량의세그먼트중 가장 우선권을 가져서 처리됨.
CheckSum:
。Segment의데이터에 문제가 있는지 확인하는 용도
일반적인 데이터
UDP
세그먼트구성
。TCP 세그먼트에 비해 더욱 간단하여 용량적으로 더 효율적임.
▶UDP 특성인데이터손실 및 순서오류에 대한 방지책이 없으므로 간단함.
▶대용량 스트리밍 서비스등에 유리
출처
인프런 - AWS 강의