- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程考前资料
Linux网络编程 又称为 套接字编程
它位于 应用层 和 传输层 之间
API 即 应用程序编程接口
TCP 面向连接的 可靠的 传输控制协议 全双工通信
IPV4 32位 IPV6 128位
应用层(应用层协议有:TELNET 23端口 、FTP 21端口、SMTP 使用TCP的25端口),传输层(TCP,UDP),网际层IP,网络接口层。
TFTP使用 UDP 69端口
login命令 使用 TCP 513 端口
数据报文最长为65536 即2的16次方个字节;TCP的保留值为6;UDP的保留值为17;ICMP为1
客户端建立连接:CLOSED、SYN_SENT、ESTABLISHED
客户端关闭连接:ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT、CLOSED
服务器端建立连接:CLOSED、SYN_RCVD、ESTABLISHED
服务器端关闭连接:ESTABLISHED、CLOSE_WAIT、LAST_ACK、CLOSED
TCP的可靠性:
超时重传
确认信号
检验和
重新排序
丢弃重复
流量控制
导致TCP协议发送RST包的原因:
1)SYN 数据段指定的目的端口处没有接收进程在等待。
2)TCP协议想放弃一个已经存在的连接。
3)TCP接收到一个数据段,但是这个数据段所标识的连接不存在。
接收到RST数据段的TCP协议立即将这条连接非正常地断开,并向应用程序报告错误。
建立TCP连接
客户端通过调用connect()函数主动打开并发送SYN分节,服务器端准备好接收客户端发送的分节请求,并且通过调用socket、bind和listen函数来完成。收到消息后,需要确认消息,那么服务器端发送一个自己的SYN分节和一个确认号ACK给客户端,接受客户的连接,最后客户端发送ACK确认服务器的SYN,连接建立成功。
释放TCP连接
客户端首先使用close函数主动关闭,并且发送一个FIN分节,服务器收到FIN分节后被动关闭,向客户端发送ACK确认FIN分节。当服务器将待发的数据全部发送完成,之后服务器调用close函数关闭套接字,因此会再发送一个FIN分节给客户端,最后客户端发送ACK确认服务器发来的FIN分节,并且彻底关闭连接。
一次完成的TCP通讯包括:建立连接、数据传输、关闭连接
建立连接(三次握手):
1.客户端通过向服务器端发送一个SYN来建立一个主动打开,作为三路握手的一部分。
2.服务器端应当为一个合法的SYN回送一个SYN/ACK。
3.最后,客户端再发送一个ACK。这样就完成了三路握手,并进入了连接建立状态。
数据传输:
1.发送数据端传输PSH数据包
2.接收数据端回复ACK数据包
关闭连接(四次分手):
1. 一端主动关闭连接。向另一端发送FIN包。
2. 接收到FIN包的另一端回应一个ACK数据包。
3. 另一端发送一个FIN包。
4. 接收到FIN包的原发送方发送ACK对它进行确认。
TCP状态转换图:
说明(netstat可查看状态):
CLOSED: 初始状态。
LISTEN: 服务器端的某个SOCKET处于监听状态,可以接受连接了。
SYN_RCVD: 服务器接受到了SYN报文。
SYN_SENT: 客户端已发送SYN报文。
ESTABLISHED:连接已经建立了。
FIN_WAIT_1:当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。
FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。
TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2个MSL(最大生存时间)值(RFC建议2分钟,Berkeley传统使用30s)后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
TIME_WAIT状态存在两个理由:
1.可靠地实现TCP连接的终止
2.允许老的重复分解在网络中消逝
执行主动关闭的一端都会进入TIME_
您可能关注的文档
- PowerDesigner设计数据库使用规范.docx
- 各类疫苗接种常识..doc
- 各类食品添加剂..doc
- 各类词语中日对照表汇总..doc
- 各种蔬菜的图片及营养价值..doc
- 各类高压电气设备试验项目及要求标准..doc
- 各级护理管理人员职责..doc
- 各级管理人员安全生产责任制1..doc
- 各规模餐厅人员组织架构..doc
- 各类木材种类特征介绍(配图解)..doc
- 《GB/T 3048.4-2025电线电缆电性能试验方法 第4部分:导体直流电阻试验》.pdf
- 中国国家标准 GB/T 3048.4-2025电线电缆电性能试验方法 第4部分:导体直流电阻试验.pdf
- GB/T 3048.4-2025电线电缆电性能试验方法 第4部分:导体直流电阻试验.pdf
- 《JJF 2279-2025圆锥螺纹量规校准规范》.pdf
- JJG 2098-2025直流电能计量器具检定系统表.pdf
- 《GB/T 4706.128-2025家用和类似用途电器的安全 第128部分:新风净化机的特殊要求》.pdf
- 中国国家标准 GB/T 4706.128-2025家用和类似用途电器的安全 第128部分:新风净化机的特殊要求.pdf
- GB/T 30117.6-2025灯和灯系统的光生物安全 第6部分:紫外线灯产品.pdf
- 中国国家标准 GB/T 30117.6-2025灯和灯系统的光生物安全 第6部分:紫外线灯产品.pdf
- GB/T 31270.12-2025化学农药环境安全评价试验准则 第12部分:鱼类急性毒性试验.pdf
文档评论(0)