《网络编程基础》PPT课件.pptx
《《网络编程基础》PPT课件.pptx》由会员分享,可在线阅读,更多相关《《网络编程基础》PPT课件.pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络编程基础TCP/IP基础知识TCP协议UDP协议Socket的位置I/O多路复用Socket选项带外数据一、TCP/IP基础知识 TCP/IP协议是一组在网络中提供可靠数据传输和无连接数据服务的协议。其中提供可靠数据传输的协议称为传输控制协议TCP,而提供无连接数据包服务的协议叫做Internet协议IP。但是TCP/IP协议并不是只有TCP和IP两个协议,而是包含很多其他协议的一个网络协议的集合。TCP/IP协议组大体上分为三部分:1Internet协议(IP)2传输控制协议(TCP)和用户数据报文协议(UDP)3处于TCP和UDP之上的一组协议专门开发的应用程序。它们包括:TELNET
2、,文件传送协议(FTP),域名服务(DNS)和简单的邮件传送程序(SMTP)等许多协议。一、TCP/IP基础知识 TCP/IP协议参考模型共分四层:3一、TCP/IP基础知识4网络接口层是TCP/IP的最底层,负责从网络接收IP数据报及通过网络发送IP数据报。网间网层(也叫IP层、网络层)负责相邻计算机之间的通信。其功能包括:处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。处理输入数据报:检查其合法性,去掉IP报头,将剩下部分交给适当的传输协议。处理路由、流控、拥塞等。传输层负责网络主机与主机的通信。其功能如下:格
3、式化信息流。提供连接/非连接端对端的传输。应用层向用户提供一组常用的应用程序。一、TCP/IP基础知识用户数据用户数据App头部用户数据TCP头部用户数据TCP头部IP头部用户数据TCP头部IP头部以太网头部以太网尾部以太网帧401500字节FTP客户TCPIP以太网驱动程序TCP段IP分组一、TCP/IP基础知识应用层表示层会话层传输层网络层数据链路层物理层应用层IPv4,IPv6网络接口层TCPUDPOSI模型TCP/IP模型二、TCP协议TCP(传输控制协议)是一种可靠的面向连接的传送服务。主机交换数据必须首先建立连接,传输完毕后断开连接。它用位流通信,即数据被作为无结构的字节流。它提供
4、反馈重发机制,从而保证数据的可靠传输。二、TCP协议TCP是面向连接的。一个TCP客户建立与一个给定服务器的连接,并跨该连接与那个服务器交换数据,然后终止连接。TCP提供可靠性,实现了丢失重传,RTT(客户到服务器往返所花时间,round-triptime)的动态估算。当TCP向另一端发送数据时,它要求对端返回一个确认。如果确认没有收到,TCP自动重传数据并等待更长时间。在数次重传失败之后,TCP才放弃。TCP通过给所发送数据的每一个段管理一个序列号进行排序。以便于接收端按这个序号对数据进行排序。TCP提供流量控制。TCP总是告诉对端它能够接收多少字节的数据,这称为通告窗口。这个窗口在任何时刻
5、都指出接收缓冲区中可用空间,从而确保发送端发送的数据不会溢出接收缓冲区。TCP的连接是全双工的。二、TCP协议TCP数据包头TCP数据包头格式:二、TCP协议源端口、目的端口:16位长,标识出远端和本地的端口号。序号:32位长,标识发送的数据报的顺序。确认号:32位长,希望收到的下一个数据报的序列号。TCP头长:4位长,表明TCP头中包含多少个32位字。6位未用。ACK:ACK为1表明确认号是合法的;如果ACK为0,那么数据报不包含确认信息,确认字段被省略。PSH:表示是带有PUSH标志的数据。因此请求数据报一到接收方便可送往应用程序而不必等到缓冲区装满时才传送。RST:用于复位由于主机崩溃或
6、其他原因而出现的错误的连接,还可以用于拒绝非法的数据报或拒绝连接请求。SYN:表示同步。FIN:用于释放连接。窗口大小:16位长,窗口大小字段表示在确认了字节之后还可以发送多少个字节。校验和:16位长,是为了确保高可靠性而设置的,它校验头部、数据和伪TCP头部之和。可选项:0个或多个32位字,包括最大TCP载荷、窗口比例、选择重发数据报等选项。二、TCP协议TCP连接建立是一个三次握手过程,三次握手的目的是使数据的发送和接收同步。其过程如下:服务器必须准备好接受外来的连接。通过调用socket,bind,listen函数完成。称为被动打开。客户通过调用connect进行主动打开。这引起客户TC
7、P发送一个SYN(表示同步)分节,告诉服务器客户将在(待建立的)连接中发送的数据的初始序列号。服务器必须确认客户的SYN,同时自己也得发送一个SYN分节。服务器以单个分节向客户发送SYN和对客户的SYN的ACK(表示确认)。客户必须确认服务器的SYN。二、TCP协议客户服务器SocketConnect(阻塞)(主动打开)Socket,bind,listen(被动打开)SYNJSYNK,ackJ+1ackK+1Accept返回Read阻塞Connect返回Accept(阻塞)二、TCP协议TCP连接关闭过程如下:某个进程首先调用close(称这一端执行主动关闭),这一端的TCP于是发送一个FIN
8、分节,表示数据发送完毕。另一端称为被动关闭。TCP对接收的FIN分节进行确认,并以文件结束标志传递给应用程序。FIN的接收意味着应用进程在相应连接上再也接收不到额外数据。一段时间后,接收到文件结束标志的应用程序调用close,这也导致向对方发送一个FIN分节。接收到这个FIN分节的原发送方TCP对它进行确认。Note:因每个方向都需要一个FIN和一个ACK,所以一般需要四个分节。但执行被动关闭的那一端的TCP在步骤2和3发出的ACK和FIN也可以合并为一个分节。二、TCP协议客户服务器Close主动关闭被动关闭Read返回0FINMACKN+1CloseACKM+1FINN三、UDP协议UDP
9、协议(用户数据报协议)是建立在IP协议基础之上的,用在传输层的协议。UDP提供了无连接的数据报服务。UDP和IP协议一样,是不可靠的数据报服务。三、UDP协议UDP提供无连接服务UDP缺乏可靠性支持,应用程序必须实现:确认、超时、重传、流量控制等UDP面向记录服务UDP套接口是无连接的、不可靠的数据报协议;既然它不可靠为什么还要用呢?其一:当应用程序使用广播或多播是只能使用UDP协议;其二:由于他是无连接的,所以速度快。三、UDP协议协议的选择依据:(1)对数据可靠性的要求高可靠性要求的应用需选择TCP协议,如验证、密码字段的传送都是不允许出错的,而对数据的可靠性要求不高的应用可选择UDP传送
10、。(2)应用的实时性TCP协议在传送过程中要使用三次握手、重传确认等手段来保证数据传输的可靠性。使用TCP协议会有较大的时延,因此不适合对实时性要求较高的应用,如VOIP、视频监控等。相反,UDP协议则在这些应用中能发挥很好的作用。(3)网络的可靠性由于TCP协议的提出主要是解决网络的可靠性问题,它通过各种机制来减少错误发生的概率。因此,在网络状况不是很好的情况下需选用TCP协议(如在广域网等情况),在网络状况很好的情况下(如局域网等)应选择UDP协议来减少网络负荷。四、socket的位置应用层程序TCPUDPIP网络接口层流式套接口数据报套接口原始套接口五、I/O多路复用select()系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络编程基础 网络 编程 基础 PPT 课件
限制150内