2011 년봄학기데이터통신 Chapter 09 TCP 와 UDP
목차 마스터텍스트 TCP스타일을의특성과스트림편집합니다전송둘째수준 1 1 셋째수준 2 TCP 세그먼트형식과기능넷째수준 2 다섯째수준 3 3 4 흐름제어 (Flow control) 기법 오류제어 (Error control) 기법 3 3 혼잡제어 (Congestion control) 기법 3 3 5 3 6 사용자데이터그램프로토콜 (UDP)
Section 01 TCP 의특성과스트림전송 TCP (Transmission Control Protocol) 마스터텍스트스타일을편집합니다 전송계층에위치둘째수준셋째수준전송을보장함을의미넷째수준 TCP 프로토콜의전송단위 : 세그먼트 ( 제어정보세그먼트 (ACK) 로나뉨다섯째수준 종단간 (end-to-end) d) 흐름제어, 에러제어등의기능수행 신뢰성제공 신뢰성 : 하나의호스트에서다른호스트로데이터의중복이나손실없이데이터의 TCP 프로토콜의전송단위 : 세그먼트 (segment) 사용자데이터세그먼트와
TCP 의데이터스트림전송과정 마스터텍스트스타일을편집합니다 retransmission) 기법둘째수준 수신측에서데이터를수신하면, 'ACK' 메시지를전송셋째수준넷째수준 다음패킷을전송하기전에 ACK을기다림다섯째수준 TCP 의신뢰성있는데이터전송방법 : p-ack 재전송 (positive ACK with 전송측에서는전송한각각의세그먼트에대한정보를가지고있음 전송측에서는하나의패킷을전송할때타이머를동작시키며, 만약 ACK 이도착하기전에 타이머의동작이종료되면재전송 2 2 3 3
p-ack 재전송기법 : 패킷이손실되거나잘못된경우 전송측 : 패킷전송후에타이머를동작시킴 마스터텍스트스타일을편집합니다둘째수준 전송측은패킷이손실되었음을감지하여패킷을재전송셋째수준 신뢰성프로토콜넷째수준다섯째수준 패킷이손실이손실되어 ACK 이도착하기전에타이머의동작이종료 각각의패킷에일련번호 (sequence number) 를할당하고패킷의중복성감지 지연이나중복된 ACK 에의해발생되는혼잡함을피하기위해일련번호를 ACK 와함께전송 2 2
TCP 의특성 (1) 마스터 스트림텍스트지향성 (Stream 스타일을 Orientation) 편집합니다둘째수준스트림 (stream) 형태로처리셋째수준넷째수준일치되도록함다섯째수준 TCP 는전송시사용자데이터를옥텟 (octet) 또는바이트를기본단위로하는데이터 TCP 는스트림전송서비스 : 전송측의데이터전송순서가최종목적지에서도 가상회선연결 (Virtual Circuit Connection) TCP 는데이터전송시작전먼저연결 (connection) 설정과정을수행 이러한논리적인연결을가상회선연결 (virtual circuit connection) 이라함 가상회선연결설정후데이터전송 데이터전송동안, 양측의프로토콜소프트웨어는데이터의정확한수신을위해 계속해서서로간의전송상태확인 ( 즉, p-ack 재전송기법등사용 ) 데이터전송의에러가발생시, 양측은이를감지하고보고
TCP 의특성 (2) 버퍼를이용한전송 (Buffered Transfer) 마스터텍스트스타일을편집합니다둘째수준셋째수준 전이중전송연결 (Full Duplex Connection ) 넷째수준다섯째수준 데이타스트림으로부터충분한데이터를수집하고버퍼를이용하여데이터 블록을채운후에전송 효율적인전송과트래픽 (traffic) 혼잡최소화 TCP 연결은전이중양방향전송 (full duplex) 을지원 서로다른방향성을갖는두개의독립적인스트림흐름을만듬 하나의 스트림에대해반대방향으로제어정보를보낼수있음
Section 02 TCP 세그먼트형식과기능 TCP 헤더영역 마스터텍스트스타일을편집합니다둘째수준포트번호 (port number) 를적음셋째수준넷째수준다섯째수준 소스포트 & 목적지포트 : TCP 연결에서응용프로그램을식별하는 TCP 포트번호 (Port Number): 프로세스대프로세스를정의하기위한식별자로사용 (0~65535) 일련번호 : 바이트스트림안에서의세그먼트위치를식별 ( 즉, 세그먼트의순서번호 ) ACK 번호 : 다음에수신하게될세그먼트의번호 ( 바이트수 ) 를식별
HLEN: 다중 32 비트에서측정되는세그먼트헤더의길이를나타내는정수값 마스터텍스트스타일을편집합니다둘째 수준 Code Bits: 세그먼트의목적과내용을결정셋째수준넷째수준다섯째수준 Reserved: 차후에사용하기위해남겨진영역 (6 bit)
마스터텍스트스타일을편집합니다윈도우메커니즘에서사용둘째수준 Checksum: 세그먼트전체에대한에러탐지를수행셋째수준넷째수준다섯째수준 Window 크기 : 버퍼크기로써세그먼트에보낼수있는데이터의크기를알림, 긴급포인터 : 세그먼트에긴급데이터가있는지여부를알려주는긴급플래그 (URG) 와관련, 긴급히처리해야할필요가있는데이터의마지막바이트의위치를 나타냄 Options: TCP의확장된다양한기능과관련된영역, 타임스탬프, 최대세그먼트크기등의기능이포함
TCP 동작 연결설정과정 전송측과수신측은데이터전송을준비하고일련번호를초기화 ( 각각은랜덤한일련번호를선택 ) 마스터텍스트스타일을편집합니다둘째수준셋째수준 ACK 번호 =x+1 포함 ) 넷째수준다섯째이를초기화수준 연결을설정을위해 3 방향교신과정 (Three-way handshake) 을사용 1. 첫번째세그먼트 : SYN 비트를설정하여전송 ( 일련번호 =x 포함 ) 2. 두번째세그먼트 : SYN 비트에대한 ACK, SYN 비트와 ACK 비트를모두설정 ( 일련번호 =y 와 3. 마지막세그먼트 : ACK 비트만설정 (ACK 번호 =y+1 포함 ), 양측의연결이설정되었음을알림 일반적으로, 하나의장치에서 TCP 가교신을하기위하여기다리고, 다른장치의 TCP 프로토콜이 하나의연결은한쪽끝에서나양쪽끝에서동시에설정될수있으며, 일단연결이설정되면데이터는양방향으로동시에전송가능
TCP 동작 연결해제과정 TCP 연결해제를위해 수정된 3방향교신 과정을사용마스터텍스트스타일을편집합니다연결을해제둘째수준 전송측 : FIN 비트설정후전송 ACK 수신셋째수준 ACK을기다림넷째 수신측수준 : FIN & ACK 비트설정후전송 ACK 수신다섯째수준 하나의응용프로그램이 TCP 에게더이상데이터를전송하지않겠다고알리면 TCP 는한쪽방향의 또다른쪽의연결을해제하기위해 TCP 에게남아있는데이터의전송종료를알리게되며, 이에대한 수신측 TCP 는 FIN 세그먼트에응답하고마지막으로응용프로그램은더이상데이터를활성화하지않음 일단연결이해제되면 TCP 는그방향으로는더이상의데이터를받아들이지않음
Section 03 흐름제어기법 흐름제어 (flow control) 란? 마스터텍스트스타일을편집합니다둘째수준셋째수준 슬라이딩윈도우 (sliding window) 동작넷째수준 윈도우의열림동작다섯째수준 수신측으로부터 ACK 를받기전에전송측이전송하는데이터의양을조절하는기능 수신측으로부터 ACK 가도착하여, 윈도우의오른쪽경계가오른쪽으로이동함을의미 늘어난만큼더많은데이터의전송가능 윈도우의닫힘동작 데이터 ( 바이트 ) 가전송되어, 윈도우의왼쪽경계가오른쪽으로이동함을의미 전송측은이데이터에대해서는더이상관여할필요가없음
슬라이딩윈도우의동작 윈도우크기결정마스터텍스트스타일을편집합니다둘째수준사용셋째수준넷째 혼잡수준윈도우 : 혼잡상태가발생하지않도록네트워크에서결정다섯째수준 수신측윈도우 (rwnd, receiver window) 와혼잡윈도우 (cwnd, congestion window) 를 수신측윈도우 : ACK 를포함하고있는세그먼트를사용하여상대방에게알려줌 윈도우크기 = 최소값 ( rwnd, cwnd )
Section 04 오류제어기법 마스터 오류제어텍스트 (error control) 스타일을기법편집합니다둘째수준중복되는경우에이에대한처리기능을수행하는것셋째수준 세그먼트의재전송 (retransmission) 방법에기초넷째수준다섯째수준 전송된세그먼트가손실되었거나, 훼손된경우, 순서가어긋나는경우, 또는 ( 예 ) 세그먼트의데이터크기는 100 바이트, 초기일련번호 501 전송측에서첫번째세그먼트 ( 순서번호 : 501~600) 와두번째세그먼트 ( 순서번호 : 601~700) 전송 ACK(=701) 에의해서확인응답 세번째세그먼트 ( 일련번호 : 701~800) 가전송도중, 손실됨 수신측에서는네번째세그먼트 ( 일련번호 : 801~900) 가도착했으나, 세번째세그먼트는도착하지않았기 때문에, 곧바로 ACK(=701) 로하여다시전송측으로보냄. 전송측은네번째세그먼트를보내고 ACK(=901) 를기다림. RTO 는타임아웃되고수신측에서 ACK(= 701) 가도착하므로세번째세그먼트 ( 일련번호 : 701~800) 를 재전송. 수신측은이미도착한네번째세그먼트 ( 일련번호 :801-900) 를고려하여순서에맞도록처리하고, 그 결과로 ACK(=901) 가전송측으로전송
오류제어기법의예마스터텍스트스타일을편집합니다둘째수준셋째수준넷째수준다섯째수준
Section 05 혼잡제어기법 혼잡제어 (congestion control) 마스터텍스트스타일을편집합니다둘째수준유지시키는메커니즘과기술셋째수준넷째수준다섯째수준 네트워크로유입되는사용자트래픽 ( 데이터에대한표현 ) 의양이네트워크용량을초과하지않도록 만일트래픽양이네트워크의용량을초과하게되면혼잡상태 (congestion status) 가됨 일반적으로 TCP 는느린출발알고리즘과혼잡회피알고리즘을기반으로하여혼잡제어를수행
느린출발알고리즘 마스터텍스트스타일을편집합니다둘째수준 느리게출발하지만점점증가속도가빨라짐셋째수준넷째수준다섯째수준 느린출발알고리즘 (slow start algorithm) 은혼잡제어를위한윈도우의크기 (congestion window) 를 한계치에도달할때까지지수적으로 (1, 2 2, 2 3, 2 4 ) 증가시키는방법
혼잡회피알고리즘 마스터텍스트스타일을편집합니다둘째수준셋째수준 혼잡감지단계에서의동작넷째수준다섯째수준 혼잡회피알고리즘 (congestion avoidance algorithm) 은혼잡윈도우의크기 (congestion window) 를 혼잡상태가감지될때까지하나씩 (additively) (1,2,3,4 ) 증가시키는방법 느린출발알고리즘과혼잡회피알고리즘이서로연동되어동작 가정 : 타임아웃과 3 개의 ACK 가수신되는경우에혼잡이감지된것으로간주 연결설정 느린출발 cwnd ssthresh 연결해제 ssthresh=1/2 윈도우 cwnd = 1 MSS 혼잡 타임아웃 혼잡회피 종료 3 ACKs 혼잡 ssthresh=1/2 윈도우 cwnd = ssthresh 연결해제
Section 06 사용자데이터그램프로토콜 (UDP) UDP(User Datagram Protocol) 마스터텍스트스타일을편집합니다 오버헤드를최소화한매우간단한구조둘째수준셋째수준 UDP를사용하는프로토콜의예넷째수준다섯째수준 비연결형 (connectionless) IP 전달서비스로최소한의신뢰성을제공 SNMP(Simple Network Management Protocol): 실시간인터넷방송과네트워크장비를관리감시하기위한목적으로정의된응용계층표준프로토콜
UDP 데이터그램의구조와각영역의기능 전송측포트번호 (Source Port Number): 발신지호스트상에서수행되는 마스터텍스트스타일을편집합니다프로세스가사용하는포트번호둘째수준셋째프로세스가수준사용하는포트번호넷째수준다섯째단위로수준나타내며적어도 8바이트는되어야함 목적지포트번호 (Destination Port Number): 목적지호스트상에서수행되는 길이 (Length): 헤더와데이터를합한사용자데이터그램의전체길이를정의, 바이트 체크섬 (Checksum): 사용자데이터그램에오류가있는지검사하기위해사용
UDP 를사용하는경우 단순한요청 - 응답을필요로하는프로세스 마스터텍스트스타일을편집합니다둘째수준 멀티캐스팅과브로드캐스팅을위한전송프로토콜셋째수준넷째수준다섯째수준 내부적인흐름제어와오류제어메커니즘을가지고있는프로세스 SNMP(Simple Network Management Protocol) 와같은관리프로세스 온라인게임이나대량의데이터를신속하게전달을요하는스트리밍서비스등 UDP TCP 호스트사이에세션이설정되지비연결성서비스 UDP 는전송승인이나데이터정렬을보장하지않음 UDP를사용하는프로그램은데이터전송에필요한신뢰성을제공해야함 호스트사이에세션이설정되는연결지향서비스 TCP 는승인및순차적인데이터전송을통해전송을보장 TCP를사용하는프로그램은신뢰할수있는데이터전송을보장 UDP는빠르고오버헤드가적으며, 지점간통신과지점대다중지점간 (pointto-multipoint) 통신을지원 많은오버헤드가필요하며지점간통신만지원
요약 TCP (Transmission Control Protocol) 마스터텍스트스타일을편집합니다둘째수준 TCP의데이터스트림전송과정 : p-ack 재전송기법셋째수준넷째수준 TCP 헤더구조다섯째수준 종단간흐름제어및에러제어등의기능수행 ( 신뢰성제공 ) 특성 : 스트림지향성, 가상회선연결, 버퍼를이용한전송, 전이중전송연결 TCP 동작 : 연결설정및해제과정 (Three-way handshake 방식사용 ) 흐름제어 : 슬라이딩윈도우기반 오류제어 : 세그먼트의재전송기반 혼잡제어 : 느린출발알고리즘 & 혼잡회피알고리즘 UDP(User Datagram Protocol) 비연결형 (connectionless) IP 전달서비스로최소한의신뢰성을제공 UDP 헤더구조