UNP 6

[UNP] Transport Layer에 대한 이야기

모든 것은 결국 Datagram 단위로 쪼개져 보내진다. TCP가 Stream 방식이지만, 이건 sequence number를 이용해 순서를 정해주는 방식이다. DSCP : 네트워크 트래픽에 서로 다른 수준의 서비스를 할당할 수 있도록 하는 IP 패킷의 한 필드 MTU(Maximum Transmission Unit) - 네트워크 Layer에서 Segment 없이 보낼 수 있는 최대 데이터그램 크기. 즉, 한 번에 보낼 수 있는 크기. - 하드웨어에 따라 값이 다르다. - 우리가 주로 사용하는 이더넷의 MTU 값은 1500이다. - MSS(Maximum Segment Size)는 MTU에 영향을 조금 받는다. MTU = MSS + IP Header + TCP HeaderMTU가 1500이라면, MSS = ..

[UNP] SCTP Association Establishment and Termination

SCTP는 Connection-Oriented(연결 기반) 통신이다. 그래서 SCTP 또한 Association establishment와 Termination에 대한 Handshake를 한다. Four-Way handshake시나리오는 TCP와 비슷하다. SCTP association이 establish되면 알 수 있다. 1. Server는 들어오는 Association을 받을 준비를 해야 한다. 이 준비는 일반적으로 socket, bind, listen을 사용하는 것으로 이루어 지고, 이것이 Passive Open 과정이다. 2. Client에서 connect를 호출하거나, 암묵적으로 association을 open하는 message를 보내면서 Active Open을 하게 된다.Client SCTP가..

[Unix Network Programming] TIME_WAIT State

MSL(Maximum Segment Lifetime) 만약 TCP 자체를 구현해야 한다면, MSL 값을 반드시 세팅해 주어야 한다. RFC1122 : 2분. Berkeley-derived version : 30초. MSL은 IP Datagram이 Network에 존재할 수 있는 최대시간이다. original url : https://ko.wikipedia.org/wiki/Time_to_live TTL(Time To Live) & 홉 리미트(hop limit)인터넷 프로토콜에서 TTL은 8비트 크기의 필드이다. IPv4 헤더에서 TTL은 20 옥텟 중 8번째 옥텟이며, IPv6 헤더에서는 40 옥텟 중 8번째 옥텟이다. TTL의 최댓값은 단일 옥텟의 최댓값에 해당하는 255이다. 권장되는 초기값은 64이다..

[Unix Network Programming] Chapter 2.6 TCP Connection Establishment and Termination

1. 서버는 들어오는 새 연결을 Accept할 준비를 한다. (socket, bind, listen 호출)2. connect를 호출하여 open한다. Client는 SYN(synchronize segment : 서버에게 보낼 data의 sequence number)를 보낸다. 일반적으로 SYN과 함께 전송되는 데이터는 없다. 그저 IP Header / TCP Header / 여러가지 TCP 옵션들에 대한 정보가 포함된다.3. 서버는 클라이언트의 SYN에 응답하여 ACK를 보낸다. 또한, 보낼 데이터의 sequence number를 포함한 SYN을 보낸다. ' 이걸 하나의 segment에 담아 보낸다. 4. 마지막으로, 클라이언트는 서버의 SYN에 응답하여 ACK를 보낸다. TCP Options MSS 이..

[Unix Network Programming] Chapter 2.5 SCTP(Stream Control Transmission Protocol)

SCTP는 TCP/UDP와 흡사하다. 클라이언트와 서버 간의 "Association"들을 제공한다. TCP처럼 reliablity / sequencing / flow control, full-duplex 통신을 제공한다. "Association"은 SCTP에서 "connection" 대신에 사용하는 용어이다. connection은 오직 2개의 IP주소끼리의 연결을 의미하기 때문이다. SCTP는 Multi Homing으로 인해 2개 이상의 IP 주소가 사용될 수 있다. TCP와 다르게 SCTP는 Message Oriented 방식이다. 그리고 UDP처럼, 송신 측에 의해 작성된 records의 길이가 수신 측에 전달된다. SCTP는 연결 endpoint들 사이에 Multiple Stream을 사용할 수 있..

[UNP] 2.4 (TCP) Transmission Control Protocol

TCP - connection 기반으로 데이터를 교환한다. - Reliable - ACK가 오지 않으면 자동으로 데이터를 재전송하고, 기다린다. 보통 4~10분간(구현에 따라 다름) 몇 번의 데이터 재전송을 해도 응답이 없다면 포기한다. - 다른 endpoint로부터의 데이터를 receive할 거라는 보장을 하지 않는다. 그저 가능하다면 데이터를 전달하는 것이다. 데이터를 받을 수 없다면 그 정보를 알려 준다.- 그래서 TCP는 100% 신뢰성 있는 프로토콜을 보장하는 것이 아니다.- Round-Trip Time(RTT : ACK가 얼마나 오래 걸리는지에 대한 시간 => 패킷 주고받는 시간)을 추정하는 알고리즘을 사용한다. 만약 LAN을 통한 RTT는 밀리초 단위 시간이 걸린다면, WAN에서는 초 단위로..

반응형