PART V Transport Layer.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
IT Central Library KMITL
Advertisements

บทที่ 2 แบบจำลอง OSI OSI Model.
การเรียนครั้งที่ 9 บทที่ 4: “Telecommunications, the Internet, Intranets, and Extranets” โดย อ.เพ็ญจิรา คันธวงศ์ อ.เพ็ญจิรา คันธวงศ์
นางสาวมะลิวรรณ ระหูภา
TCP/IP.
ATM NETWORK.
บทที่11 Transmission Control Protocol(TCP) Connection
Chapter 2 Switching.
TCP/IP Protocols IP Addressing
Network Model แบบจำลอง OSI
การพัฒนาการใช้งานในระบบเว็บ
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
Chapter 19 Network Layer: Logical Addressing
การสื่อสารทางไกลและเครือข่าย (Telecommunication And Networks)
SMTP.
ARP (Address Resolution Protocol)
Data Transferring.
ระบบเครือข่ายคอมพิวเตอร์
องค์ประกอบของระบบ Internet
เครือข่าย LAN แบบ IEEE 802 IEEE 802.X Network
Digital Data Communication Technique
Firewall IPTABLES.
Transport Layer.
File Transfer (FTP), WWW, HTTP, DHCP.
Network Layer Protocal:
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
โดย อ.ปริญญา น้อยดอนไพร V
โดย อ.ปริญญา น้อยดอนไพร V
อาจารย์ ถนอม ห่อวงศ์สกุล
Data Communication Chapter 2 OSI Model.
รูปแบบการเชื่อมต่อเครือข่ายแบ่งตามกลุ่มผู้ใช้
OSI MODEL.
ทบทวนความเข้าใจ.
TCP/IP.
What’s P2P.
บทที่ 2 แบบจำลอง OSI OSI Model.
การออกแบบสถาปัตยกรรมแอปพลิเคชั่น
Week 11: Chapter 25: UDP Chapter 26: TCP
โดย อาจารย์นัณฑ์ศิตา ชูรัตน์
บทที่ 3 การวิเคราะห์ Analysis.
อินเทอร์เน็ตInternet
Network Address Translation (NAT)
Internet.
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
Lab 1 – 2 Protocols Guideline.
Chapter 4 หมายเลขไอพี และการจัดสรร
Protocol ทำเราท์เตอร์เป็นเซิร์ฟเวอร์แจกไอพี Dynamic Host Configuration
TCP Protocol.
IP ADDRESS.
HTTP (Hyper Text Transfer Protocol )
ISP ในประเทศไทย
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย เด็กชาย คณิศร อ้อยกลาง เลขที่ 36 ม.2/5 เสนอ อ.สายฝน เอกกันทา โรงเรียนจักรคำคณาทร จ.ลำพูน.
BY KIADTIPONG YORD. CHANDRA 2004 :: COMPUTER NETWORK ระบบเครือข่ายคอมพิวเตอร์ และการกระจาย Computer Network and Distributed เครือข่ายระยะไกล Wide Area.
ระบบเครือข่ายคอมพิวเตอร์
Firewall Presented by Suthee Sirisutthidecha Instructor, IT Faculty 13 July 2013suthee sirisutthidecha1.
สิ่งที่สำคัญในระบบปฏิบัติการของเราในวันนี้คงหนีไม่พ้นในเรื่องของ เครือข่าย หรือ Network network คืออะไร เครือข่ายมีไว้เพื่อสื่อ สารกันระหว่างคอมพิวเตอร์
Network Security.
Bandwidth Management Network Management and Design.
การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์
คำศัพท์ระบบอินเตอร์เน็ต
Application Layer.
1. บทนำเกี่ยวกับอินเทอร์เน็ต อินเทอร์เน็ตมีจุดเริ่มต้นมาจากเหตุผล ทางการทหาร เนื่องจากในยุค สงครามเย็น เมื่อประมาณ พ. ศ 2510 ระหว่างฝ่ายคอมมิวนิสต์ และฝ่ายเสรี
แบบจำลอง OSI Model.
ระบบเครือข่ายคอมพิวเตอร์
OSI 7 LAYER.
C# Communication us/library/system.net.sockets.tcplistener(v=vs. 110).aspx 1.
TCP/IP Protocol นำเสนอโดย นส.จารุณี จีนชาวนา
เครือข่ายคอมพิวเตอร์
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
ใบสำเนางานนำเสนอ:

PART V Transport Layer

Transport layer สำคัญอย่างไร? เนตเวิร์กเชื่อมโยงอินเตอร์เน็ตอย่างไร ลักษณะการส่งข้อมูลในอินเตอร์เน็ต โปรโตคอล TCP/IP ทำงานอย่างไร

เนตเวิร์กเชื่อมโยงอินเตอร์เน็ตอย่างไร High speed backbone router

เนตเวิร์กเชื่อมโยงอินเตอร์เน็ตอย่างไร

เนตเวิร์กเชื่อมโยงอินเตอร์เน็ตอย่างไร

ลักษณะการส่งข้อมูลในอินเตอร์เน็ต router High speed backbone

ลักษณะการส่งข้อมูลในอินเตอร์เน็ต

Transport layer สำคัญอย่างไร? เครือข่ายอินเตอร์เน็ต มีขนาดใหญ่ ประกอบด้วย เครือข่ายย่อยส่วนต่างๆ ซึ่งดูแลโดยผู้ให้บริการส่วนนั้นๆ ปัญหาเครือข่ายที่เกี่ยวกับการให้บริการ อาจเกิดขึ้น เช่น เราเตอร์เสีย การเชื่อมต่อเสีย แพกเก็ตข้อมูลอาจสูญหาย/เสียหายในอัตราค่อนข้างสูง

Transport layer สำคัญอย่างไร? แต่ ผู้ใช้ไม่มีสิทธิในการจัดการหรือ ควบคุมเครือข่ายย่อยเลย ทางออกที่เป็นไปได้คือ เพิ่ม Transport layer เหนือชั้น Network layer เพื่อให้มีความสามารถในการส่งข้อมูลผ่านเครือข่ายที่ไม่มีความน่าเชื่อถือ และมีความเสี่ยงสูงได้

โปรโตคอล TCP/IP ทำงานอย่างไร ให้แตกข้อมูลและข่าวสารออกเป็นส่วนย่อยที่เรียกว่า แพกเก็ต แพกเก็ตเหล่านี้ จะถูกส่งไปยังปลายทางที่เป็นเป้าหมายที่ถูกต้อง แล้วก็นำแพกเก็ตย่อยเหล่านี้ มารวมเข้าด้วยกันอีกครั้งหนึ่งในรูปดั้งเดิมตามที่มันถูกส่งมา Transport layer : TCP ทำหน้าที่ แตกแพกเก็ตย่อยและนำกลับมารวมกันเข้า Network layer: IP ทำหน้าที่ ส่งแพกเก็ตไปยังปลายทางได้อย่างถูกต้อง

Position of transport layer

Transport layer duties Application layer Transport layer Network layer Datalink layer Physical layer

Transport layer duties Connection-oriented: มีการสร้างการเชื่อมต่อ (connection) ก่อน จากนั้นจึงส่งข้อมูล ช้าในตอนเริ่มต้น แต่ชัวร์ Connectionless: ไม่มีการสร้างการเชื่อมต่อ (connection) สามารถส่งข้อมูลได้เลย ส่งได้รวดเร็วแต่ไม่รับประกันว่าถึงหรือไม่

Transport layer duties กำหนดหมายเลข port สำหรับ process บนคอมพิวเตอร์ เพื่อการส่งข้อมูลแบบ process-to-process delivery

Transport layer duties Flow control Error control คล้าย Datalink layer แต่จะทำใน ระดับ process-to-process แทนที่ จะเป็นในระดับ node-to-node

Chapters Chapter 22 Process-to-Process Delivery Chapter 23 Congestion Control and QoS

Process-to-Process Delivery: UDP and TCP Chapter 22 Process-to-Process Delivery: UDP and TCP

22.1 Process-to-Process Delivery Client-Server Paradigm Addressing Multiplexing and Demultiplexing Connectionless/Connection-Oriented Reliable/Unreliable

The transport layer is responsible for process-to-process delivery. Note: The transport layer is responsible for process-to-process delivery. process-to-process delivery คือการส่งข้อมูล (ส่วนของข้อความ) จาก process หนึ่งไปยังอีก process หนึ่ง

Figure 22.1 Types of data deliveries

สอง process ใดๆ จะสื่อสารกันในลักษณะ ผู้รับบริการและผู้ให้บริการ Note: สอง process ใดๆ จะสื่อสารกันในลักษณะ ผู้รับบริการและผู้ให้บริการ (client/server relationship)

Client/server relationship Client/server network operating systems allow the network to centralize functions and applications in one or more dedicated file servers. The file servers become the heart of the system, providing access to resources and providing security. Individual workstations (clients) have access to the resources available on the file servers. The network operating system provides the mechanism to integrate all the components of the network and allow multiple users to simultaneously share the same resources irrespective of physical location. Novell Netware and Windows NT Server are examples of client/server network operating systems.

Client/server relationship Client/server network operating systems allow the network to centralize functions and applications in one or more dedicated file servers. The file servers become the heart of the system, providing access to resources and providing security. Individual workstations (clients) have access to the resources available on the file servers. The network operating system provides the mechanism to integrate all the components of the network and allow multiple users to simultaneously share the same resources irrespective of physical location. Novell Netware and Windows NT Server are examples of client/server network operating systems.

Port numbers Channel 35 Channel 21 Channel 18 Port 1863 Port 80 Ports were developed so that computers could accept data from multiple sources over the same IP address. Think if it like this; Your TV service is the Internet, and the ports are you channels. You have many forms of entertainment, news, and information available through many different channels. Think about this, lets say that MTV is channel 35 on your TV. The same is true for web servers that run on port 80. Every port has a special purpose just as each channel serves a different television program. While you only have 1 cable TV subscription, you can still receive multiple channels. Two main types of ports: TCP and UDP. TCP stands for Transmission Control Protocol. UDP stands for User Data Protocol. Some programs on your computer will use TCP ports to communication and other may use UDP. It is important to know the difference between how the two operation. Port 80 Port 25

Figure 22.2 Port numbers ผู้รับ ผู้ส่ง ผู้ส่ง ผู้รับ

Figure 22.3 IP addresses versus port numbers

Figure 22.4 IANA ranges Ports numbers are assigned by the IANA (Internet Assigned Number Authority). There are 65,535 TCP and UDP ports available to transmit data with. Ports 0-1023 are reserved for common use. These ports are assigned by the IANA (Internet Assigned Numbering Authority). This means, that every port from 0-1023 will be the same on every system. For example, let's say a server in New York is using port 80, and so is a server Texas. Because port 80 falls in the range of reserved ports, we know both servers are using port 80 for HTTP connections. Viewing a list of known ports can help you determine which type of connections are present on your machine. You can view the RFC on ports (RFC 1700) here.

Figure 22.5 Socket address

Server with many ports Servers, or any machine for that matter "listen" on certain ports. For example, a server running web, FTP, and Telnet services will listen on a port for each. The act of listening simply means the machine is waiting for another device to connect to it.

Figure 22.6 Multiplexing and demultiplexing Port 80 Port 23 Port 21 192.168.0.15 You can see how the server is listening for 3 ports over a single IP address (192.168.0.15). You should also know that it is possible for multiple devices to connect to a single port. Meaning, a telnet server may accept over 100 simultaneous connections to port 23.

ลักษณะการทำงานของ transport layer Process-to-process delivery ใช้ client socket address และ server socket address Multiplexing/demultiplexing มีการแบ่งบริการ ตามลักษณะการเชื่อมต่อในเครือข่าย Connectionless service (แบบไม่มีการเชื่อมต่อ) Connection-oriented service (แบบสร้างการเชื่อมต่อ) มีการแบ่ง ตามลักษณะความน่าเชื่อถือในการส่งข้อมูล Unreliable Reliable UDP TCP

Figure 22.7 Connection establishment สำหรับ Connection-oriented service (แบบสร้างการเชื่อมต่อ)

Figure 22.8 Connection termination สำหรับ Connection-oriented service (แบบสร้างการเชื่อมต่อ)

Figure 22.9 Error control

22.2 UDP Port Numbers User Datagram Applications

Note: แบบไม่มีการเชื่อมต่อ ไม่น่าเชื่อถือ UDP is a connectionless, unreliable protocol that has no flow and error control. It uses port numbers to multiplex data from the application layer. UDP (User Datagram Protocol) is anther commonly used protocol on the Internet. However, UDP is never used to send important data such as webpages, database information, etc; UDP is commonly used for streaming audio and video. Streaming media such as Windows Media audio files (.WMA) , Real Player (.RM), and others use UDP because it offers speed! The reason UDP is faster than TCP is because there is no form of flow control or error correction. The data sent over the Internet is affected by collisions, and errors will be present. Remember that UDP is only concerned with speed. This is the main reason why streaming media is not high quality.

UDP (User Datagram Protocol) UDP เป็นโปรโตคอลหลักที่ทำงานอยู่บนชั้น Transport เช่นเดียวกันกับ TCP โดยมีลักษณะดังต่อไปนี้ เป็นโปรโตคอลแบบ “Connectionless” นำส่งข้อมูลจากโพรโทคอลชั้น Application ไปยัง IP ไม่มีกลไกรับประกันความถูกต้องของข้อมูลเดทาแกรม โปรแกรมประยุกต์ที่ใช้ยูดีพี ต้องจัดการปัญหาเหล่านี้เอง ในชุดโปรโตคอลทีซีพี/ไอพี นั้น ยูดีพี คือกลไกแรกที่ใช้สำหรับส่งเดทาแกรมไปยังโปรแกรมประยุกต์อื่น ยูดีพี ใช้ IP เพื่อส่งข้อความจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง แบบจำลอง ยูดีพี มีการส่งเดทาแกรมแบบไม่ต้องสร้างการเชื่อมต่อและยังไม่น่าเชื่อถือ ซึ่งหมายความว่าข้อความของยูดีพี อาจสูญหาย ซ้ำซ้อน ล่าช้า หรือ ใช้งานไม่ได้เมื่อถูกส่งออกไป แพ็คเก็ตอาจถึงเร็วกว่าที่ผู้รับจะประมวลผลได้ทัน แพ็คเก็ทอาจมาถึงแบบผิดลำดับ โดยโปรแกรมประยุกต์ที่ใช้ ยูดีพี ต้องแก้ปัญหาเหล่านี้เอง

UDP (User Datagram Protocol) ประโยชน์หลักของ ยูดีพี คือ ความเร็วเพราะ ไม่ต้องผ่านการจัดการข้อผิดพลาดใด ๆ ยูดีพี จึงเร็วกว่า ทีซีพี มาก โปรแกรมประยุกต์บางชนิดเหมาะที่จะใช้งาน ยูดีพี เช่น การติดต่อกับ Timeserver ที่พอร์ต 37 จะต้องได้รับข้อความที่บรรจุเวลา GMT (Greenwich Mean Time) อยู่เรื่อย ๆ ถ้าแพ็คเก็ทใดสูญหายก็ไม่มีผลมากนัก เพราะจะได้รับข้อความต่อไปอยู่ดี

หมายเลขพอร์ต (Port number) หมายเลขพอร์ต คือ หมายเลขที่ใช้ระบุโพรโทคอลของโปรแกรมประยุกต์เป็นตัวเลขขนาด 16 บิต เป็นเสมือนแอดเดรสประจำโพรโทคอลในชั้นประยุกต์ทีซีพี/ไอพี สงวนพอร์ตหมายเลข 1 ถึง 1023 ไว้ใช้ประจำโพรโทคอลประยุกต์โดยเรียกเลขพอร์ตนี้ว่า “well-known ports” ซึ่งใช้เป็นมาตรฐานทุกสถานีหรืออุปกรณ์เครือข่าย IANA ( Internet Assigned Numbers Authority ) ได้จำแนกประเภทของพอร์ตเป็น 3 ประเภท ดังนี้ 1. The well-known ports เป็นหมายเลขพอร์ตสากลที่ใช้เป็นมาตรฐานในเครือข่าย อินเทอร์เน็ต เช่น พอร์ตหมายเลข 21 เป็นพอร์ตสำหรับรับส่งไฟล์ FTP (File Transfer Protocol) เป็นต้น โดย The well-known ports เป็นพอร์ตตั้งแต่ 0 - 1023 2. The Registered Ports เป็นหมายเลขพอร์ตลงทะเบียนสำหรับองค์กรต่างๆ เช่น พอร์ตหมายเลข 1863 เป็นของ MSN Messenger เป็นต้น โดย The Registered Ports เป็นพอร์ตตั้งแต่1024 -49151 3. The Dynamic and/or Private Ports เป็นหมายเลขพอร์ตอิสระที่ไม่ใช่ The well knownports และไม่ใช่ The Registered Ports โดย Dynamic Ports นี้ แอพลิเคชั่นทั่วไป สามารถเลือกมาใช้ได้และเป็นพอร์ตตั้งแต่ 49152 – 65535

หมายเลขพอร์ต (Port number) โปรโตคอลประยุกต์หนึ่ง ๆ อาจเรียกใช้บริการได้ทั้งทีซีพีและยูดีพี โดยใช้หมายเลขพอร์ตเดียวกัน แต่เป็นอิสระต่อกัน ตัวอย่างเช่น echo มีหมายเลขพอร์ตเท่ากับ 7 หากมีการขอบริการทีซีพีและยูดีพีพร้อมกันที่พอร์ตนี้โปรเซสที่เกิดขึ้นจะเป็นโปรเซสอิสระต่อกัน

Table 22.1 Well-known ports used by UDP Protocol Description     7 Echo Echoes a received datagram back to the sender     9 Discard Discards any datagram that is received   11 Users Active users   13 Daytime Returns the date and the time   17 Quote Returns a quote of the day   19 Chargen Returns a string of characters   53 Nameserver Domain Name Service   67 Bootps Server port to download bootstrap information   68 Bootpc Client port to download bootstrap information   69 TFTP Trivial File Transfer Protocol 111 RPC Remote Procedure Call 123 NTP Network Time Protocol 161 SNMP Simple Network Management Protocol 162 Simple Network Management Protocol (trap)

Figure 22.10 User datagram format

User datagram format หมายเลขพอร์ตของสถานีต้นทาง (source port) ขนาด 16 บิต หมายเลขพอร์ตของสถานีปลายทาง (destination port) ขนาด 16 บิต ความยาว (length) ขนาด 16 บิต บอกความยาวของเดทาแกรม ทั้งเฮดเดอร์และข้อมูล หน่วยเป็นจำนวนไบต์ เช็คซัม (check sum) ขนาด 16 บิต ผลรวมตรวจสอบ คำนวณจากผลรวมของเฮดเดอร์และข้อมูล (optional) จะเห็นว่ายูดีพีมีเฮดเดอร์ที่เรียบง่ายและมีฟิลด์จำนวนน้อย โดยที่ไม่มีฟิลด์ที่ใช้รับประกันความเชื่อถือในการส่งข้อมูล ซึ่งแตกต่างกับทีซีพี

ประโยชน์ ของ UDP การทำงานไม่ซับซ้อน เหมาะแก่การรับส่งข้อมูลสั้นๆ ระหว่าง client-server เหมาะแก่การส่งข้อมูลแบบ broadcasting หรือ multicasting ใช้ในการ update routing information โดยใช้กับ Simple Network Management Protocol (SNMP) ใช้ในการส่งข้อมูล real-time multimedia โดยใช้กับ Real-time Transport Protocol (RTP)

การส่งข้อมูล real-time multimedia ใช้ Real-time Transport Protocol (RTP) บน UDP

Note: UDP is a convenient transport-layer protocol for applications that provide flow and error control. It is also used by multimedia applications.

หลักการของ UDP

22.3 TCP Port Numbers Services Sequence Numbers Segments Connection TCP (Transmission Control Protocol) is the most commonly used protocol on the Internet. The reason for this is because TCP offers error correction. When the TCP protocol is used there is a "guaranteed delivery." This is due largely in part to a method called "flow control." Flow control determines when data needs to be re-sent, and stops the flow of data until previous packets are successfully transferred. This works because if a packet of data is sent, a collision may occur. When this happens, the client re-requests the packet from the server until the whole packet is complete and is identical to its original. Transition Diagram Flow and Error Control Silly Window Syndrome

Table 22.2 Well-known ports used by TCP Protocol Description    7 Echo Echoes a received datagram back to the sender     9 Discard Discards any datagram that is received   11 Users Active users   13 Daytime Returns the date and the time   17 Quote Returns a quote of the day   19 Chargen Returns 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

TCP (Transmission Control Protocol) Transport ของแบบอ้างอิง TCP/IP ดังภาพประกอบ 2.1 โดยมีหน้าที่ดังต่อไปนี้ 􀃠 เป็นโพรโทคอลแบบ “Connection - oriented” 􀃠 จัดเตรียมการส่งถ่ายข้อมูลโดยสร้างการเชื่อมต่อ 􀃠 รักษาสภาพการเชื่อมต่อ 􀃠 ส่งข้อมูล ให้แน่ใจว่าข้อมูลถึงปลายทางอย่างถูกต้อง ทีซีพีฝั่งผู้ส่งต้องส่งแพ็คเก็ทซ้ำ ใหม่หากแพ็คเก็ทสูญหาย 􀃠 รับประกันความเชื่อถือสำหรับการส่งข้อมูล 􀃠 จัดลำดับแพ็คเก็ทให้ถูกต้องตามลำดับ 􀃠 กำจัดแพ็คเก็ทซ้ำซ้อน 􀃠 ยกเลิกสภาพการเชื่อมต่อเมื่อสิ้นสุดการส่งถ่ายข้อมูล ทีซีพีต้นทางจัดรูปแบบข้อมูลเพื่อส่งให้ไอพีดำเนินการ ทีซีพีปลายทางเมื่อรับ แพ็คเก็ทจากไอพี ก็จะส่งต่อให้โพรโทคอลประยุกต์ที่ใช้บริการผ่านทีซีพี ได้แก่ TELNET, Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP) เป็นต้น

TCP-Transmission Control Protocol Connection-oriented Designed for reliable connection over unreliable network 3 phases Connection establishment Data transfer Connection termination Data arrive in sequence, flow and error control Adds reliability to IP

Figure 22.11 Stream delivery Imaginary pipe

Figure 22.12 Sending and receiving buffers Sending process และ receiving process ส่งและรับข้อมูลได้ด้วยอัตรา ไม่เท่ากัน ต้องใช้ buffer สำหรับการส่งและรับข้อมูล ในแต่ละทิศทาง

Figure 22.13 TCP segments TCP groups many bytes into a segment. Adds header to each segment. Delivers to IP network layer for transmission. Lost, corrupted re-sent segments handled at TCP. Receiving process is unaware of activities.

Example 1 Imagine 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 are sent in five segments with the first four segments carrying 1000 bytes and the last segment carrying 2000 bytes? Solution The following shows the sequence number for each segment: Segment 1 ==> sequence number: 10,010 (range: 10,010 to 11,009) Segment 2 ==> sequence number: 11,010 (range: 11,010 to 12,009) Segment 3 ==> sequence number: 12,010 (range: 12,010 to 13,009) Segment 4 ==> sequence number: 13,010 (range: 13,010 to 14,009) Segment 5 ==> sequence number: 14,010 (range: 14,010 to 16,009)

Note: The bytes of data being transferred in each connection are numbered by TCP. The numbering starts with a randomly generated number.

Note: The value of the sequence number field in a segment defines the number of the first data byte contained in that segment.

Note: The value of the acknowledgment field in a segment defines the number of the next byte a party expects to receive. The acknowledgment number is cumulative.

Figure 22.14 TCP segment format

Figure 22.15 Control field

Table 22.3 Description of flags in the control field URG The value of the urgent pointer field is valid. ACK The value of the acknowledgment field is valid. PSH Push the data. RST The connection must be reset. SYN Synchronize sequence numbers during connection. FIN Terminate the connection.

Figure 22.16 Three-step connection establishment

Figure 22.17 Four-step connection termination

Table 22.4 States for 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. 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 acknowledgment.

Figure 22.18 State transition diagram

Note: A sliding window is used to make transmission more efficient as well as to control the flow of data so that the destination does not become overwhelmed with data. TCP’s sliding windows are byte-oriented.

Figure 22.19 Sender buffer

Figure 22.20 Receiver window

Figure 22.21 Sender buffer and sender window

Figure 22.22 Sliding the sender window

Figure 22.23 Expanding the sender window

Figure 22.24 Shrinking the sender window

Note: In TCP, the sender window size is totally controlled by the receiver window value (the number of empty locations in the receiver buffer). However, the actual window size can be smaller if there is congestion in the network.

Some points about TCP’s sliding windows: Note: Some points about TCP’s sliding windows: The source does not have to send a full window’s worth of data. The size of the window can be increased or decreased by the destination. The destination can send an acknowledgment at any time.

Figure 22.25 Lost segment

Figure 22.26 Lost acknowledgment Timeout seq:1201 Timeout seq:1401 Timeout seq:1601

Figure 22.27 TCP timers