슬라이드 제목 없음

Similar documents
슬라이드 1

Microsoft PowerPoint - 20_TransportProtocols-1.ppt

TCP.IP.ppt

Microsoft PowerPoint - Chap09_TCP와 UDP [호환 모드]

슬라이드 제목 없음

Microsoft PowerPoint _TCP_IP

7. TCP

Microsoft Word doc

ARQ (Automatic Repeat reQuest)

Microsoft PowerPoint - 4. 스캐닝-2.ppt [호환 모드]

PEL_PPT

SMB_ICMP_UDP(huichang).PDF

bn2019_2

Subnet Address Internet Network G Network Network class B networ

TCP for MANET

Network seminar.key

그룹웨어와 XXXXX 제목 예제

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to TCP/IP Sockets: C Version

슬라이드 1

Microsoft PowerPoint - net3

슬라이드 제목 없음

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

The Pocket Guide to TCP/IP Sockets: C Version

SRC PLUS 제어기 MANUAL

IP 주소란? 네트워크상에존재하는컴퓨터들을구분하고, 서로를인식하기위해사용하는특수한번호. 32-bit 체계의 IPv4 와, 128-bit 체계의 IPv6 가있다. About IPv4 32-bit 의길이로이루어지는 IPv4 는 1 byte (= 8-bit) 씩 4 개로나누

Switching

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft PowerPoint Network-Transport

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

Microsoft PowerPoint - 06-IPAddress [호환 모드]

V. 통신망 기술

Microsoft PowerPoint Network-Transport

OSI 참조 모델과 TCP/IP

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft Word - access-list.doc

컴퓨터네트워크와인터넷 컴퓨터네트워크 Copyright by Tommy Kwon on August, 2010 Copyright by Tommy Kwon on August, 통신 정보전송시스템의구성과역할, 원리 l 원격지간에정보를잘전송하고처

2009년 상반기 사업계획

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint Network-Transport

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft PowerPoint - 3-Network-Transport

[QoS 강좌] QoS에서의 혼잡 회피 적용과 이해 ②

자바-11장N'1-502

*****

일반적인 네트워크의 구성은 다음과 같다

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Microsoft Word - src.doc

untitled

<4D F736F F F696E74202D FB5A5C0CCC5CDB8B5C5A9BFCD20BFC0B7F9C1A6BEEE20B1E2B9FD205BC8A3C8AF20B8F0B5E55D>

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

[ tcpdump 패킷캡처프로그램 ] tcpdump란? tcpdump 버전확인 tcpdump 플래그 (flags) tcpdump 사용법 tcpdump의사용예제 telnet을활용해 root와 passwd 암호알아내기 [01] tcpdump란? tcpdump는 Lawren

hd1300_k_v1r2_Final_.PDF

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

UDP Flooding Attack 공격과 방어

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

2009년 상반기 사업계획

<3130C0E5>

Microsoft PowerPoint - 4. 스캐닝-2(11.21) [호환 모드]

(SW3704) Gingerbread Source Build & Working Guide

PowerPoint Presentation

歯규격(안).PDF

Sena Device Server Serial/IP TM Version

DBPIA-NURIMEDIA

2-11Àå

RHEV 2.2 인증서 만료 확인 및 갱신

Microsoft PowerPoint 권태경교수님Network-Research-CSE

untitled

제20회_해킹방지워크샵_(이재석)

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

Microsoft PowerPoint - J1C_User_Manual_V5.2.pptx

BMP 파일 처리

ARMBOOT 1

PowerPoint Presentation

0. 들어가기 전

Microsoft PowerPoint - 03-TCP Programming.ppt

untitled

소프트웨어 융합 개론

°í¼®ÁÖ Ãâ·Â

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

제10장 트래핀스포트 및 응용 계층

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선

본 강의에 들어가기 전

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

ÀÎÅÍ³Ý ÁøÈï¿ø 3¿ù ÀúÇØ»ó


ÀÎÅÍ³Ý ÁøÈï¿ø 5¿ù


PowerPoint 프레젠테이션

*

The Pocket Guide to TCP/IP Sockets: C Version


Transcription:

2006-11-23 경북대학교컴퓨터공학과 1 제 12 장 TCP (Transmission Control Protocol) TCP 개요 연결관리 연결설정 연결해제 전송제어 오류제어 흐름제어 혼잡제어 TCP 세그먼트 TCP 구조

TCP/IP 위치 2006-11-23 경북대학교컴퓨터공학과 2

TCP 의캡슐화 2006-11-23 경북대학교컴퓨터공학과 3

TCP vs IP 2006-11-23 경북대학교컴퓨터공학과 4

2006-11-23 경북대학교컴퓨터공학과 5 Well known 포트번호 Port Protocol 7 Echo 9 Discard 11 Users 13 Daytime 17 Quote 1 Chargen 2 FTP, Data 3 FTP, Control 23 TELNET 25 SMTP 53 DNS 67 BOOTP 79 Finger 80 HTTP 111 RPC

2006-11-23 경북대학교컴퓨터공학과 6 TCP 기능 연결지향프로토콜 3 단계 : 연결설정, 데이터전송, 연결해제 신뢰성서비스제공 상위계층의응용프로그램에게완전무결한전송서비스를보장 오류제어메커니즘제공 ( 재전송방식이용 ) 흐름제어메커니즘제공 ( 슬라이딩윈도우프로토콜이용 ) Full duplex ( 전이중 ) 서비스제공 하나의 TCP 연결상에서동시양방향전송 스트림데이터서비스제공 신뢰성있는전송서비스를제공하기위해바이트단위의순서번호부 여 ( 데이터세그먼트는자신이운반하는첫번째데이터바이트의순서 번호를헤드에기록함 )

2006-11-23 경북대학교컴퓨터공학과 7 Stream service 송신 TCP 송신응용프로그램으로부터문자스트림의형태로전달 적절한크기의세그먼트로잘라서번호를부여한후 IP로전달 수신 TCP 데이터를추출하여문자스트림으로응용프로그램에전달 Buffer Hello dear friend. I am sending a letter I am sending a letter Hello dear friend. TCP Segment 2 TCP Segment 1

2006-11-23 경북대학교컴퓨터공학과 8 TCP 송수신큐 스트림데이터서비스 : 송수신 TCP 큐사용 송신 : write 동작 수신 : read 동작 응용프로그램의데이터생성시 TCP 로전달 예 : 키보드입력시응용프로그램은한문자씩 TCP 로전달 예 : 파일로부터입력시응용프로그램은한라인또는한블록씩 TCP 로전달 여러번의 write 동작으로하나의세그먼트생성 응용프로그램에서 PUSH 를요구하면각 write 마다하나의세그먼트생성가능

송수신버퍼 2006-11-23 경북대학교컴퓨터공학과 9

2006-11-23 경북대학교컴퓨터공학과 10 세그먼트 TCP 간에전달되는데이터단위

2006-11-23 경북대학교컴퓨터공학과 11 TCP 세그먼트 포트번호 : 발신지 / 목적지응용프로그램의포트번호 순서번호 (SEQ): 첫번째데이터바이트의번호 ACK 번호 : 수신확인번호 ( 상대방으로부터수신한바이트의번 호를알려주어제대로전송되었음을확인해줌 ) 헤더길이 : 4 바이트단위 (5~15) 윈도우크기 : 상대방으로부터수신가능한바이트개수 ( 자신의 수신버퍼상태를기반으로결정 ) 검사합 (checksum) : 오류검출 제어플래그 옵션 (option) : 옵션정보 ( 최대 40 바이트 )

2006-11-23 경북대학교컴퓨터공학과 12 SEQ/ACK Number 순서번호 (SEQ): TCP 세그먼트가운반하는데이터의첫번째바이트의번호 연결설정시 TCP는난수발생기를사용하여초기순서번호 (Initial Sequence Number: ISN) 을생성 각연결마다독립적인순서번호사용 ACK 번호 : 상대방으로부터수신하고자하는바이트의번호 상대로부터 SEQ = x 인세그먼트를수신하면 ACK <= x+1 x 번바이트까지잘받았으며다음에받을바이트는 x+1 번임

2006-11-23 경북대학교컴퓨터공학과 13 순서번호예제 Q : A TCP connection is transferring a file of 6000 bytes. The first byte is numbered 10010. What are the sequence numbers for each segment if data is sent in five segments with the first four segments carrying 1,000 bytes and the last segment carrying 2,000 bytes? A : Segment 1 10,010 (10,010 to 11,009) Segment 2 11,010 (11,010 to 12,009) Segment 3 12,010 (12,010 to 13,009) Segment 4 13,010 (13,010 to 14,009) Segment 5 14,010 (14,010 to 16,009)

제어플래그 2006-11-23 경북대학교컴퓨터공학과 14

2006-11-23 경북대학교컴퓨터공학과 15 검사합 UDP 와동일하며필 수사항 (mandatory) Pseudoheader를임시로추가하여 checksum 계산한후제거 프로토콜의값 : 6

2006-11-23 경북대학교컴퓨터공학과 16 TCP 동작 연결관리 연결설정 연결해제 연결중단 연결거부 데이터전송제어 오류제어 흐름제어 혼잡제어

2006-11-23 경북대학교컴퓨터공학과 17 연결설정 3-way handshaking 을통한양방향연결설정 SYN segment, SYN + ACK segment 는데이터운반불가능하지만 1 개의순서번호사용 ACK segment 는데이터운반가능 ( 데이터를운반하지않을경우에는순서번호사용하지않음 )

2006-11-23 경북대학교컴퓨터공학과 18 연결설정 1) 클라이언트프로그램은자신의 TCP 에게데이터전송을요청 (active open) 2) 서버프로그램은자신의 TCP 에게연결수락준비를통보 (passive open) 서버프로세스는자신이먼저연결개설요청불가 3) 클라이언트 TCP 는서버 TCP 에게연결설정요구세그먼트를전송 클라이언트 TCP 는 SYN 세그먼트전송 ( SYN = 1 ) 클라이언트가전송하는세그먼트의초기순서번호 (ISN) 포함 4) 서버 TCP 는클라이어트 TCP 의연결설정요구에대한수락과서버 - 클라이언트방향의연결설정을요구하는세그먼트전송 서버 TCP 는 SYN+ACK 전송 ( SYN=1, ACK=1 ) 서버 TCP 가전송하는세그먼트의 ISN 포함 클라이언트 TCP 의윈도우 (rwnd) 크기지정 ( 클라이언트가전송할수있는세그먼트의최대크기 ) 지정 5) 클라이언트 TCP 는서버 TCP 에게 ACK 를전송하여서버 - 클라이언트간에양방향연결설정완료 클라이언트 TCP 는서버 TCP 의연결요청을수락 ( ACK=1 ) 서버 TCP 의윈도우 (rwnd) 크기지정 첫번째데이터배달가능

2006-11-23 경북대학교컴퓨터공학과 19 TCP 연결 TCP TCP TCP 각연결마다독립적인순서번호, 버퍼, 윈도우를유지관리함 TCP

2006-11-23 경북대학교컴퓨터공학과 20 연결해제 (3-way) 3-way handshaking 연결해제

2006-11-23 경북대학교컴퓨터공학과 21 연결해제 (3-way) 1. 클라이언트프로세스가더이상보낼데이터가없으면자신의 TCP에게연결종료요구 (active close) 하고클라이언트 TCP는 FIN을전송 ( FIN=1 ) 한다음서버 TCP로가는방향의연결해제 FIN segment 가데이터를운반하지않을경우에는순서번호를쓰지않음 2. 서버 TCP 는클라이언트 TCP 의연결종료요구에대해 FIN+ACK 으로회신하고클라이언트로가는방향의연결종료 (passive close) - 서버프로세스가보낼데이터가없을경우 3. 클라이언트 TCP 는 ACK 로써응답하고서버 TCP 는연결종료

2006-11-23 경북대학교컴퓨터공학과 22 연결해제 (4-way) 각방향의연결을별도로해제 (half close) 데이터송신은중단한반면상대방으로오는데이터의수신은지속됨 양방향연결종료를위해서는 4-way handshaking

2006-11-23 경북대학교컴퓨터공학과 23 데이터전송 ESTABLISHED : Connection is established ESTABLISHED 데이터전송 데이터전송 ESTABLISHED Active close FIN ACK Inform application and deliver data in queue and EOF

2006-11-23 경북대학교컴퓨터공학과 24 데이터전송 오류제어 흐름제어 혼잡제어

2006-11-23 경북대학교컴퓨터공학과 25 ACK 데이터세그먼트또는제어세그먼트의수신확인 TCP 에서는 NAK 가사용되지않음 피기백킹가능 ( 데이터에 ACK 정보를편승 ) ACK 세그먼트에대한 ACK 는보내지않음 Accumulative ACK The acknowledgment number is cumulative. ( 제대로받은가장마지막바이트의수신확인으로그이전의모든바이트에대한수신확인이이루어짐 ) 수신 TCP 는 ACK 를통해다음받을바이트번호를알려줌 TCP 세그먼트헤드의 32-bit ACK 필드사용 (ACK flag=1 일경우에만유효 ) Selective ACK (SACK) 송신 TCP 에게분실세그먼트나순서어긋한세그먼트의수신을알려주기위하여 TCP 헤드의옵션필드사용 ACK 전송을위한 6 Rules

2006-11-23 경북대학교컴퓨터공학과 26 Normal operation 1) 데이터를보낼때는항상 ACK 정보를첨부 (Piggybacked ACK) 트래픽감소를위하여 2) 데이터세그먼트를 1 개수신한이후 500ms 경과하면 Explicit ACK 전송 과도한 ACK 전송방지를위해 3) 수신한데이터세그먼트가 2 개누적되면즉각 Explicit ACK 전송 불필요한재전송방지를위해

2006-11-23 경북대학교컴퓨터공학과 27 Lost segment 손실감지 : 타임아웃 전까지 ACK 되지않을경우 4) Out of order 세그먼트가도착하면즉각 Explicit ACK 전송 상대방 TCP 에게세그먼트분실통보를하기위해 Out of order 세그먼트수신시임시저장하고즉각 ACK 전송 5) 분실세그먼트를받을경우즉각 Explicit ACK 전송 상대방 TCP 에게분실세그먼트를잘받았다는통보를하기위해

2006-11-23 경북대학교컴퓨터공학과 28 Lost ACK 의복구 ( 시나리오 1) 6) 중복세그먼트를받을경우즉각 Explicit ACK 전송 ACK 분실에대처하기위해 송신 TCP : RTO 가만료되어세그먼트재전송 수신 TCP : 동일순서번호를가진중복세그먼트를폐기

2006-11-23 경북대학교컴퓨터공학과 29 Lost ACK 의복구 ( 시나리오 2) Accumulative ACK 를사용하므로다음에오는 ACK 에의해자동적으로복구

2006-11-23 경북대학교컴퓨터공학과 30 재전송규칙 오류감지는세그먼트의 검사합 필드이용오류복구는재전송으로이루어짐 TCP는상위프로세스에게오류없는데이터를순서대로전달할책임 ( 신뢰성서비스 ) 순서번호가없는세그먼트는재전송되지않음재전송규칙 1) 재전송타이머 (RTO) 가만료되는경우재전송 TCP는각세그먼트전송시재전송타이머 (RTO) 를각각생성 RTO는 RTT 측정치에따라동적으로갱신됨 ACK 세그먼트전송시에는재전송타이머를생성하지않음 2) 3 Duplicate ACK s 수신시재전송

2006-11-23 경북대학교컴퓨터공학과 31 흐름제어 상대방 TCP 에서의 overflow 예방 슬라이딩윈도우프로토콜사용 윈도우 : TCP 가전송가능한바이트의범위를지정 (Byte oriented) 각 TCP 연결마다하나의윈도우관리 윈도우크기는상대방 TCP 의버퍼상태 (rwnd) 와네트워크혼잡상황 (cwnd) 에의하여결정됨 window size = minimum (rwnd, cwnd) TCP 는 ACK 세그먼트를상대방 TCP 에게전송하여자신이수신가능한데이터량을상대방 TCP 에게통보

2006-11-23 경북대학교컴퓨터공학과 32 흐름제어예제 연결설정시윈도우크기 = 4K 송신 TCP가 4K 데이터전송 수신 TCP는 ACK 전송 ( 윈도우크기를 0 으로감소 ) 송신 TCP는전송불가 수신 TCP가 ACK 전송 ( 윈도우크기를 1K 로증가 ) 송신 TCP는다시1K 전송가능

2006-11-23 경북대학교컴퓨터공학과 33 슬라이딩윈도우 open close

2006-11-23 경북대학교컴퓨터공학과 34 Sliding window 200~202 번바이트에대한 ACK 수신및 203~204 번바이트전송이후

2006-11-23 경북대학교컴퓨터공학과 35 Example 3 What is the value of the receiver window (rwnd) for host A if the receiver, host B, has a buffer size of 5,000 bytes and 1,000 bytes of received and unprocessed data? Solution The value of rwnd = 5,000 1,000 = 4,000. Host B can receive only 4,000 bytes of data before overflowing its buffer. Host B advertises this value in its next segment to A.

2006-11-23 경북대학교컴퓨터공학과 36 Example 4 What is the size of the window for host A if the value of rwnd is 3,000 bytes and the value of cwnd is 3,500 bytes? Solution The size of the window minimum(rwnd, cwnd) = 3,000 bytes.

2006-11-23 경북대학교컴퓨터공학과 37 혼잡제어 라우터가처리할수있는속도이상으로라우터에데이터가도착할경우혼잡발생 혼잡발생시패킷이손실되어발신 TCP는 ACK를받지못함 ( 발신 TCP의 timeout 재전송을통하여복구됨 ) 흐름제어기능은상대방 TCP의버퍼용량만고려하고네트워크의수신용량은무시하므로혼잡제어가별도로필요함

혼잡제어 2006-11-23 경북대학교컴퓨터공학과 38

2006-11-23 경북대학교컴퓨터공학과 39 Slow start 연결설정시초기값 : cwnd <= 1 MSS (Max Segment Size) 전송한세그먼트가 ACK 될때마다 cwnd <= cwnd + 1 MSS ( Slow start ) 실제로는 cwnd 가지수형태로증가 Not slow start 1 (cwnd = 1 MSS) => MSS 크기의세그먼트 1개전송 => 1 ACK 수신 2 (cwnd = 2*MSS) => MSS 크기의세그먼트 2개전송 => 2 ACK s 수신 3 (cwnd = 4*MSS) => MSS 크기의세그먼트 4개전송 => 4 ACK s 수신 4 (cwnd = 8*MSS) => MSS 크기의세그먼트 8개전송 => 8 ACK s 수신

2006-11-23 경북대학교컴퓨터공학과 40 Congestion avoidance cwnd 의무한증가를막기위하여임계치 ssthresh ( slow start threshold ) 사용 (Ex : ssthres = 65,535 byets) cwnd < ssthresh 경우, 1 개의 ACK 수신시마다 cwnd <= cwnd + 1 MSS ( slow start ) cwnd = ssthresh 일경우, 윈도우내의전체세그먼트에대한 ACK 를모두받을경우에만 cwnd <= cwnd + 1 MSS ( additive increase )

2006-11-23 경북대학교컴퓨터공학과 41 Multiplicative Decrease TCP 의재전송타이머가만료되면 혼잡발생으로확신 (strong possibility) ssthresh <= ½ * (window size) cwnd <= 1 MSS ( 초기단계로복귀 ) Slow start를다시시작함 3 개의 ACK 가중복으로수신되면 세그먼트가분실되었지만이후에보낸세그먼트는제대로도착했음을의미 ( fast transmission and fast recovery ) 혼잡으로추정 (weak possibility) ssthresh <= ½ * (window size) cwnd <= ssthresh Congestion avoidance (additive increase) 를시작함

2006-11-23 경북대학교컴퓨터공학과 42 TCP congestion policy 요약 cwnd <= 1 MSS

2006-11-23 경북대학교컴퓨터공학과 43 TCP 혼잡제어예제 송신윈도우에있던 16 개의세그먼트에대한 ACK 를수신하면 cwnd 를 1MSS 만큼증가 ssthresh : 16 -> 10 ssthresh : 10 -> 6

2006-11-23 경북대학교컴퓨터공학과 44 TCP 구조 전송제어블록 (TCB : Transmission Control Block) Timer 메인모듈 입력프로세스모듈 출력프로세스모듈

전송제어블록 (TCB) 연결에대한정보보관 상태 (state): 연결의상태 프로세스 (process): 이연결을사용하는프로세스 로칼 / 리모트 IP 주소 로칼 / 리모트포트번호 인터페이스 : 서브넷의인터페이스 로칼 / 리모트윈도우 : 윈도우에관한정보보관 송수신순서번호 (SEQ/ACK) 왕복 (round-trip) 시간 : RTT 정보보관 타임아웃값 : 각타이머의종료시간보관 버퍼크기 : 로칼 ( 수신 ) 버퍼용량 버퍼포인터 : 수신데이터가저장될버퍼위치 ( 응용프로그램이읽어갈때까지머무름 ) 2006-11-23 경북대학교컴퓨터공학과 45

2006-11-23 경북대학교컴퓨터공학과 46 기말고사 일자 : 12 월 7 일 19:00 범위 : 8 장 4-20 12 장 17-43