Chapter 12 Transmission Control Protocol TCP Http netwk

  • Slides: 91
Download presentation
Chapter 12 Transmission Control Protocol (TCP) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 1

Chapter 12 Transmission Control Protocol (TCP) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 1

CONTENTS • • PROCESS-TO-PROCESS COMMUNICATION TCP SERVICES NUMBERING BYTES FLOW CONTROL SILLY WINDOW SYNDROME

CONTENTS • • PROCESS-TO-PROCESS COMMUNICATION TCP SERVICES NUMBERING BYTES FLOW CONTROL SILLY WINDOW SYNDROME ERROR CONTROL TCP TIMERS Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 2

CONTENTS (continued) • • CONGESTION CONTROL SEGMENT OPTIONS CHECKSUM CONNECTION STATE TRANSITION DIAGRAM TCP

CONTENTS (continued) • • CONGESTION CONTROL SEGMENT OPTIONS CHECKSUM CONNECTION STATE TRANSITION DIAGRAM TCP OERATION TCP PACKAGE Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 3

TCP/IP 프로토콜에서 TCP의 위치 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 4

TCP/IP 프로토콜에서 TCP의 위치 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 4

12. 1 PROCESS TO PROCESS COMMUNICATION Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 6

12. 1 PROCESS TO PROCESS COMMUNICATION Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 6

12. 1 프로세스간 통신 <TCP-대-IP Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 7

12. 1 프로세스간 통신 <TCP-대-IP Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 7

12. 1 프로세스간 통신 <포트 번호 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 9

12. 1 프로세스간 통신 <포트 번호 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 9

12. 1 프로세스간 통신 < TCP에서 사용되는 잘 알려진 포트 Port Protocol Description 7

12. 1 프로세스간 통신 < TCP에서 사용되는 잘 알려진 포트 Port Protocol Description 7 Echoes a received datagram back to the sender 9 Discards any datagram that is received 11 Users Active users 13 Daytime Returns the data and the time 17 Quote Returns a quote of the day 19 Chargen Return a string of characters 20 FTP, Data File Transfer Protocol (data connection) 21 FTP, Control File Transfer Protocol (control connection) 23 TELNET Terminal Network 25 SMTP Simple Mail Transfer Protocol 53 DNS Domain Name Server 67 BOOTP Bootstrap protocol 79 Finger 80 HTTP Hypertext Transfer Protocol 111 RPC Remote Procedure Call Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 10

12. 2 TCP SERVICES Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 12

12. 2 TCP SERVICES Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 12

12. 2 TCP 서비스 <스트림 배달 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 14

12. 2 TCP 서비스 <스트림 배달 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 14

12. 2 TCP 서비스 <송신 버퍼와 수신 버퍼 Http: //netwk. hannam. ac. kr HANNAM

12. 2 TCP 서비스 <송신 버퍼와 수신 버퍼 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 16

12. 2 TCP 서비스 <TCP 세그먼트 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 17

12. 2 TCP 서비스 <TCP 세그먼트 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 17

12. 3 NUMBERING BYTES Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 19

12. 3 NUMBERING BYTES Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 19

12. 4 FLOW CONTROL Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 24

12. 4 FLOW CONTROL Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 24

12. 4 흐름제어 <송신자 버퍼 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 26

12. 4 흐름제어 <송신자 버퍼 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 26

12. 4 흐름제어 <수신자 버퍼 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 27

12. 4 흐름제어 <수신자 버퍼 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 27

12. 4 흐름제어 <송신자 버퍼와 송신자 윈도우 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

12. 4 흐름제어 <송신자 버퍼와 송신자 윈도우 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 28

12. 4 흐름제어 <송신자 윈도우 슬라이딩 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 29

12. 4 흐름제어 <송신자 윈도우 슬라이딩 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 29

12. 5 SILLY WINDOW SYNDROME Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 34

12. 5 SILLY WINDOW SYNDROME Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 34

12. 6 ERROR CONTROL Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 38

12. 6 ERROR CONTROL Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 38

12. 6 오류 제어 <훼손 세그먼트 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 41

12. 6 오류 제어 <훼손 세그먼트 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 41

12. 6 오류 제어 <손실 세그먼트 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 42

12. 6 오류 제어 <손실 세그먼트 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 42

12. 6 오류 제어 <확인응답 손실 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 44

12. 6 오류 제어 <확인응답 손실 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 44

12. 7 TCP TIMERS Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 45

12. 7 TCP TIMERS Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 45

12. 7 TCP 타이머 <TCP 타이머 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 46

12. 7 TCP 타이머 <TCP 타이머 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 46

12. 8 CONGESTION CONTROL Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 50

12. 8 CONGESTION CONTROL Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 50

12. 8 혼잡제어 <지수적(Multiplicative) 증가 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 54

12. 8 혼잡제어 <지수적(Multiplicative) 증가 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 54

12. 1 프로세스간 통신(계속) <혼잡회피 전략 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 55

12. 1 프로세스간 통신(계속) <혼잡회피 전략 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 55

12. 9 SEGMENT Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 56

12. 9 SEGMENT Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 56

12. 9 세그먼트 <제어 필드 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 59

12. 9 세그먼트 <제어 필드 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 59

12. 10 OPTIONS Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 61

12. 10 OPTIONS Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 61

12. 10 옵션 <옵션 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 62

12. 10 옵션 <옵션 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 62

12. 10 옵션 <옵션-끝(end of option) Ü맨 끝에 패딩을 위해 사용되는 한 바이트 옵션

12. 10 옵션 <옵션-끝(end of option) Ü맨 끝에 패딩을 위해 사용되는 한 바이트 옵션 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 63

12. 10 옵션 <무 동작(no operation) Ü맨 끝에 패딩을 위해 사용되는 한 바이트 옵션

12. 10 옵션 <무 동작(no operation) Ü맨 끝에 패딩을 위해 사용되는 한 바이트 옵션 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 64

12. 10 옵션 <타임 스탬프(timestamp) Ü 10바이트 길이 옵션 Ü왕복시간(round-trip time) 계산에 사용 Http:

12. 10 옵션 <타임 스탬프(timestamp) Ü 10바이트 길이 옵션 Ü왕복시간(round-trip time) 계산에 사용 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 67

12. 11 CHECKSUM Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 68

12. 11 CHECKSUM Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 68

12. 11 검사합 <의사 헤더를 TCP 데이터그램에 추가 Http: //netwk. hannam. ac. kr HANNAM

12. 11 검사합 <의사 헤더를 TCP 데이터그램에 추가 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 69

12. 12 CONNECTION Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 70

12. 12 CONNECTION Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 70

12. 12 연결 <3 단계 핸드쉐이크(three-way handshaking) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

12. 12 연결 <3 단계 핸드쉐이크(three-way handshaking) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 73

12. 12 연결 <4단계 핸드쉐이크(Four-way handshaking) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 75

12. 12 연결 <4단계 핸드쉐이크(Four-way handshaking) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 75

12. 13 STATE TRANSITION DIAGRAM Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 76

12. 13 STATE TRANSITION DIAGRAM Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 76

12. 13 상태 천이 다이어그램 < 유한 상태 기기(finite state machine) 이용 구현 <

12. 13 상태 천이 다이어그램 < 유한 상태 기기(finite state machine) 이용 구현 < TCP 상태 State Description CLOSED There is no connection LISTEN The server is waiting for calls from the client SYN-SENT A connection request is sent; waiting for acknowledgment SYN-RCVD A connection request is received ESTABLISHED Connection is established FIN-WAIT-1 The application has requested the closing of the connection FIN-WAIT-2 The other side has accepted the closing of the connection CLOSING Both sides have decided to close simultaneously TIME-WAIT Waiting for retransmitted segments to die CLOSE-WAIT The server is waiting for the application to close LAST-ACK The server is waiting for the last acknowledgement Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 77

12. 13 상태 천이 다이어그램 <상태 천이 다이어그램 Http: //netwk. hannam. ac. kr HANNAM

12. 13 상태 천이 다이어그램 <상태 천이 다이어그램 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 78

12. 13 상태 천이 다이어그램 <클라이언트 상태 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

12. 13 상태 천이 다이어그램 <클라이언트 상태 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 80

12. 13 상태 천이 다이어그램 <서버 상태 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

12. 13 상태 천이 다이어그램 <서버 상태 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 81

12. 14 TCP OPERATION Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 82

12. 14 TCP OPERATION Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 82

12. 14 TCP 동작 <캡슐화와 역 캡슐화 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

12. 14 TCP 동작 <캡슐화와 역 캡슐화 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 83

12. 14 TCP 동작 <다중화와 역 다중화 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

12. 14 TCP 동작 <다중화와 역 다중화 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 84

12. 15 TCP PACKAGE Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 85

12. 15 TCP PACKAGE Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 85

12. 15 TCP 설계 < 전송 제어 블록(TCB : Transmission Control Block) < 타이머(Timer)

12. 15 TCP 설계 < 전송 제어 블록(TCB : Transmission Control Block) < 타이머(Timer) < 메인 모듈(Main Module) < 입력 프로세스 모듈(Input Process Module) < 출력 프로세스 모듈(Output Process Module) Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 86

12. 15 TCP 설계 <TCP 설계 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 87

12. 15 TCP 설계 <TCP 설계 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 87

12. 15 TCP 설계 <전송 제어 블록(TCB) Ü연결 제어에 대한 정보 보관 Http: //netwk.

12. 15 TCP 설계 <전송 제어 블록(TCB) Ü연결 제어에 대한 정보 보관 Http: //netwk. hannam. ac. kr HANNAM UNIVERSITY 88