第六章 传输层TCP-UDP.ppt
《第六章 传输层TCP-UDP.ppt》由会员分享,可在线阅读,更多相关《第六章 传输层TCP-UDP.ppt(73页珍藏版)》请在麦多课文档分享上搜索。
1、第六章 传输层TCP/UDP,6.1 传输层概述网络层实现了网络环境下主机之间传输信息IP数据报 实际中,从应用需要的是应用程序间的有效数据传送。数据传输的端点是应用进程,到达主机是不够的。 应用进程可能有多个。 应用进程是动态活动的:有产生、活动、消亡; IP层传输为“尽最大努力的交付服务”,即不提供可靠性保证:IP报文可能被丢弃(报文头出错、拥塞发生时、生存期为0); IP报文数据部分不做校验;链路级的差错检测不能涵盖整个传输过程。IP提供的是无连接的交付服务。 IP未为应用传输提供流量控制。 在网络层需要进行的拥塞控制与发送端有关。,在TCP/IP环境中传输层需要解决的问题有:端端的传输
2、服务提供有可靠性保证的服务寻址流量控制复用,一般对传输层的要求运输层为应用层进行通信的两个进程之间提供一个可靠的端到端的服务。按照OSI模型的描述,传输层与网络层最大的区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最终地址就不仅是主机地址了,还包括可以描述进程的某种标识。在一个网络连接上复用多对进程的通信。消除网络层的不可靠性;,传输实体完成传输层功能的硬软件; 传输层实体利用网络层提供的服务向高层提供有效、可靠的服务.传输层提供两种服务:面向连接的传输服务/无连接的传输服务。,6.2 用户数据报协议UDP ( User Datagram Protocol),UDP是一种无连接的数据
3、报传递服务,不保证可靠。它跟远程的UDP实体不建立端到端的连接,而只是将数据报送上网络,或者从网上接收数据报。,无连接服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。,UDP的作用UDP根据端口号对若干个应用程序进行多路复用,并能利用检验和检查数据的完整性。 由于网络通信的最终地址不仅是主机地址,还需包括可以描述进程的某种标识。为此TCP/IP协议提出了协议端口的概念,用于标识通信的进程。,协议端口多数计算机允许同时运行多个应用程序,因此,在一个系统中可能存在多个进程(Proces
4、s)/任务(Task)/应用程序(Application Program).通信的源和目的应该是这些进程。需要考虑的是: 进程是动态的。 进程的变化不便通知远方的进程。 实际中常从接收方实现的功能来识别目的,而不需要知道实现这个功能的进程。一个进程完成多个功能时,进程要知道请求方到底要求何种功能的服务,举例1:有一封信件是发给某大学一位学生的,而此学生正在球场进行足球赛。邮递员是否需要认出这个同学?是否必须在这个时刻把信递交这个同学。 解决:邮递员把信投放到这个同学单位信箱中。举例2:外单位需要了解某毕业生在校情况,可发信件到学校人事处(信箱),至于是老张处理该事务还是小李处理,对这个事件无本
5、质的差别。举例3:同一单位需要招聘毕业生,可发信件到学校毕业分配办公室(信箱)。,从某种意义说:协议端口是主机通信的一系列目标点。,UDP数据报(含伪首部),UDP协议实现示意,收到UDP数据报的校验和检查,UDP数据报首部,如果找到一个匹配,则把指向该PCB的指针保存在udp _last_inpcb中,高速缓存了最后收到的UDP数据报的PCB,UDP典型应用 DNS:DNS用的是53端口。域名解析服务。 snmp:简单网络管理协议,使用161端口,是用来管理网络设备的。 聊天软件Oicq :Oicq的程序既接受服务,又提供服务,这样两个聊天的人才是平等的。oicq用的是无连接的协议,其服务器
6、使用8000端口,侦听是否有信息到来;客户端使用4000端口,向外发送信息。如果上述两个端口正在使用(有很多人同时和几个好友聊天),就顺序往上加。 TFTP:端口号69 RPC:端口号111,6.3 传输控制协议TCP(Transmission Control Protocol),TCP协议是TCP/IP协议簇中重要运输层协议。是面向连接的,可提供可靠的、按序传送数据的服务。TCP提供的连接是双向的,即全双工的。,面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接,使用连接,终止连接的过程。其可望具备流量、差错控制,即提供可靠性传输服务。,一、TCP初步特征面向数据流
7、计算机系统常用形式,如文件操作。虚电路连接建立。解决差错、失序、流量。保证数据正确到达。有缓冲的传输有序、大小任意的若干数据块,协议分解/合并全双工对一个进程,提供两个独立、流向相反的数据流。TCP是一种复杂的、提供可靠传输服务的协议。 面向连接的、可靠的、端到端的、基于字节流的传输协议。,TCP目标是通过网络低层,为应用层提供可靠的双向数据流传输。要克服网络低层可能出现的错误和实际问题。,可靠的传输 滑动窗口 流量控制l 可变滑动窗口 慢启动slow start、拥塞避免congestion voidance 等 连接的管理 建立连接:三次握手 释放连接:三次握手 + 定时器,端口/连接/端
8、点端点(endpoint) (host,port)(128.10.2.3,25)连接(connection)( endpoint, endpoint)(18.26.0.36, 1069) (128.10.2.3,25)(128.9.0.32, 1184) (128.10.2.3,53)(128.2.254.139,1184)(128.10.2.3,53),应该注意到:一个端口可以被多个连接共享,一方面,一个端口可以存在多个连接;为多个连接服务的程序不需要为每个连接提供不同的端口。另一方面,在TCP中可以理解为连接是区分通信的识别,端口是连接的一个组成部分。,二、TCP的报文格式,源端口和目的端
9、口:各16位; 序号和确认号:以字节为单位编号,各32位; TCP头的长度:4位,长度单位为32位字,包含可选项域; 6位的保留域; 6位的标识位:置1表示有效 URG:和紧急指针配合使用,发送紧急数据; ACK:确认号是否有效; PSH:指示发送方和接收方将数据不做缓存,立刻发送或接收; RST:由于不可恢复的错误重置连接; SYN:用于连接建立指示; FIN:用于连接释放指示,TCP采用可变发送窗口的方式进行流量控制。窗口的大小是以字节为单位的。在TCP报文段首部的窗口字段写入的数据就是当前设定的接收窗口数值。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随
10、时动态地调整自己的接收窗口(可增大或减小),然后告诉对方,使对方的发送和自己的接收窗口一致。,窗口大小:用于基于可变滑动窗口的流控,指示发送方从确认号开始可以再发送窗口大小的字节流; 校验和:为增加可靠性,对TCP头,数据和伪头计算校验和;,选项长度可变的字段。TCP只规定了一种选项,即最长报文段MSS(Maximum Segment Size)。 MSS告诉对方的TCP:“我的缓冲区所能接收的报文段的最大长度是MSS”。 窗口和MSS的区别:MSS是一个报文的最大长度。而窗口则是所能发送的所有数据总数,它可以是多个报文段,但每个报文段必须满足MSS的限制,同时其数据总和不能超过窗口大小。,三
11、、TCP的连接与状态机要使每一方都能够确知对方的存在。要允许双方协商一些参数(如,最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓冲区大小,连接表中的项目等)进行分配。,主动打开被动打开在客户机/服务器模式下,连接的建立请求是由客户机发起的,它执行“主动打开”,而服务器执行“被动打开”,并对客户机的连接请求被动响应。 在服务器进程的实现中,首先让服务器执行“被动打开”,告诉其TCP要准备接受客户进程的连接请求。然后服务器进程就处于“听(listen)”的状态,不断检测是否有客户进程要发起连接请求。如有,即作出响应。,第一次:主机A的TCP向主机B的TCP发出连接请求报文,其
12、首部中的比特同步SYN置为1,同时选择一个序号x,该序号称为初始序号ISN(Initial Sequence Number)。第二次:主机B的TCP收到连接请求报文后,如同意,则发回确认。在确认报文中将SYN置为1,确认序号为x+1,同时也为自己选择一个序号y。第三次:主机A的TCP收到此报文段后,还要向B给出确认,其确认序号为y+1。 然后客户机A就可以通知上层应用进程,连接已经建立。 当B收到A的确认后也通知上层应用进程,连接已经建立。“三次握手”是由连接双方的TCP完成的,应用程序只要一个简单的connect调用即可。比如执行telnet命令,当出现login时连接已建立,建立的过程TC
13、P协议实体在后台进行。,A.1037B.135:s 1415531521:1415531521(0) win 4096 B.135A.1037 : s 1823083521:1823083521(0) ack 1415531522 win 4096 A.1037 B.135 : . ack 1823083522 win 4096,TCP的有限状态机,int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CFrameWnd:OnCreate(lpCreateStruct) = -1) return -1;m_pSvrSocket=n
14、ew CBoxSocket();if(!m_pSvrSocket-Create(6666) AfxMessageBox(“Error creating socket!“);delete m_pSvrSocket;m_pSvrSocket=NULL;return -1;m_pSvrSocket-Listen(5);return 0; ,利用TCP的应用示例,创建插座,void CBoxSocket:OnAccept(int nErrorCode) CBoxSocket* pSock=new CBoxSocket();if(Accept(*pSock) ConnectedSockets.AddTa
15、il(pSock);m_nCount+=1;else AfxMessageBox(“Error Accepting!“);delete pSock;CSocket:OnAccept(nErrorCode); ;,接受请求,void CBoxSocket:OnReceive(int nErrorCode) TCHAR buff2048;int nRead,pos_Temp;nRead=Receive(buff,2048);switch(nRead) case 0: AfxMessageBox(“Close!“);Close();break;case SOCKET_ERROR:AfxMessage
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 传输 TCPUDPPPT
