08-linux网络编程

08-linux网络编程

ID:25892715

大小:490.50 KB

页数:33页

时间:2018-11-23

08-linux网络编程_第1页
08-linux网络编程_第2页
08-linux网络编程_第3页
08-linux网络编程_第4页
08-linux网络编程_第5页
资源描述:

《08-linux网络编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux教程作者:王啸LINUX网络编程1.1.TCP/IP协议概述协议protocol:通信双方必须遵循的规矩由iso规定rpc文档osi参考模型:(应-表-会-传-网-数-物)è应用层表示层会话层传输层网络层数据链路层物理层tcp/ip模型4层:应用层{http超文本传输协议ftp文件传输协议telnet远程登录ssh安全外壳协议stmp简单邮件发送pop3收邮件}传输层{tcp传输控制协议,udp用户数据包协议}网络层{ip网际互联协议icmp网络控制消息协议igmp网络组管理协议}网络接口层{arp地址转换协议,rarp反向地址转换协议,mpls多协议标签交换}TCP协议:传输控制协

2、议面向连接的协议能保证传输安全可靠速度慢(有3次握手)UDP协议:用户数据包协议非面向连接速度快不可靠通常是ip地址后面跟上端口号:ip用来定位主机port区别应用(进程)http的端口号80ssh-->22telnet-->23ftp-->21用户自己定义的通常要大于10241.2.OSI参考模型及TCP/IP参考模型TCP/IP协议族的每一层的作用:·网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收。要注意的是数据帧是独立的网络信息传输单元。·网络层:负责将数据帧封装成IP数据报,并运行必要的路由算法。·传输层:负责端对端之间的通信会话连接和建立。传输协议的选择根据数据传输

3、方式而定。·应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程。33Linux教程作者:王啸TCP/IP协议族的每一层协议的相关注解:·ARP:(地址转换协议)用于获得同一物理网络中的硬件主机地址。·MPLS:(多协议标签交换)很有发展前景的下一代网络协议。·IP:(网际互联协议)负责在主机和网络之间寻址和路由数据包。·ICMP:(网络控制消息协议)用于发送报告有关数据包的传送错误的协议。·IGMP:(网络组管理协议)被IP主机用来向本地多路广播路由器报告主机组成员的协议。·TCP:(传输控制协议)为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到相应

4、的应用程序。·UDP:(用户数据包协议)提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输少量数据。33Linux教程作者:王啸1.1.TCP协议(1)概述TCP是TCP/IP体系中面向连接的运输层协议,它提供全双工和可靠交付的服务。它采用许多机制来确保端到端结点之间的可靠数据传输,如采用序列号、确认重传、滑动窗口等。首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被正确的接收一次。其次,TCP采用具有重传功能的积极确认技术作为可靠数据流传输服务的基础。这里“确认”是指接收端在正确收到报文段之后向发送端回送一个确认(ACK)信息。发送方将每个已发送

5、的报文段备份在自己的缓冲区里,而且在收到相应的确认之前是不会丢弃所保存的报文段的。“积极”是指发送发在每一个报文段发送完毕的同时启动一个定时器,加入定时器的定时期满而关于报文段的确认信息还没有达到,则发送发认为该报文段已经丢失并主动重发。为了避免由于网络延时引起迟到的确认和重复的确认,TCP规定在确认信息中捎带一个报文段的序号,使接收方能正确的将报文段与确认联系起来。最后,采用可变长的滑动窗口协议进行流量控制,以防止由于发送端与接收端之间的不匹配而引起的数据丢失。这里所采用的滑动窗口协议与数据链路层的滑动窗口协议在工作原理上完全相同,唯一的区别在于滑动窗口协议用于传输层是为了在端对端节点之间实

6、现流量控制,而用于数据链路层是为了在相邻节点之间实现流量控制。TCP采用可变长的滑动窗口,使得发送端与接收端可根据自己的CPU和数据缓存资源对数据发送和接收能力来进行动态调整,从而灵活性更强,也更合理。(2)三次握手协议在利用TCP实现源主机和目的主机通信时,目的主机必须同意,否则TCP连接无法建立。为了确保TCP连接的成功建立,TCP采用了一种称为三次握手的方式,三次握手方式使得“序号/确认号”系统能够正常工作,从而使它们的序号达成同步。如果三次握手成功,则连接建立成功,可以开始传送数据信息。其三次握手分别为:1)源主机A的TCP向主机B发送连接请求报文段,其首部中的SYN(同步)标志位应置

7、为1,表示想跟目标主机B建立连接,进行通信,并发送一个同步序列号X(例:SEQ=100)进行同步,表明在后面传送数据时的第一个数据字节的序号为X+1(即101)。2)目标主机B的TCP收到连接请求报文段后,如同意,则发回确认。再确认报中应将ACK位和SYN位置为1.确认号为X+1,同时也为自己选择一个序号Y。3)源主机A的TCP收到目标主机B的确认后要想目标主机B给出确认。其ACK置为1,确认号为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。