TCP的握手与挥手
轻轻的TCP走了,正如TCP轻轻的来,TCP挥一挥手,传递了不知多少信息
看到哪,记到哪,想起哪,就看哪,这就是我的博客园,很随性
UDP
在数据传送前不需要建立连接,接受方收到UDP报文后也不需要给出回应;不可靠的,但同时省去了很多开销,获得了速度的>>提升
TCP
在数据传送之前必须建立连接,完成数据传送之后断开连接
SOCKET
每一条TCP连接都有两个端点,称之为socket(套接字)=IP地址+端口号
码农翻身中又将其比喻为一个插座,负责将两端连接起来,提供其通信的功能:客户端IP, 客户端Port, 服务器端IP, 服务器端Port
例如IP地址192.168.10.10端口号8090,得到套接字为192.168.10.10:8090
三次握手
服务器端是被动的,服务器启动之后一直处于对客户端的监听状态
①客户端发出请求报文------->服务器端接收到请求报文
②服务端发出确认报文(服务端接收到来自客户端的请求后)-------->客户端接收到来自服务器的确认报文
③客户端发出确认报文-------->服务器端收到确认报文
第一次握手:服务器 确认了客户端的发送能力和服务器的接收能力没有问题
第二次握手:客户端 确认了服务器端的发送能力和客户端的接收能力没问题
第三次握手:服务器 确认了服务端的发送能力没问题
四次挥手
①客户端发出连接释放报文并停止数据的发送,进入终止等待状态
②服务器收到来自客户端的连接释放报文,发出确认报文(客户端已不发送数据,服务器还可以发送数据给客户端)
客户端收到服务器的确认报文,仍处于等待状态(等待服务器端的连接释放报文,还会接收来自服务器的数据)
③服务器发送连接释放报文,进入等待确认状态
④客户端收到服务器的连接释放报文发出确认报文,进入时间等待状态(还未进入连接关闭状态,需等待)
服务器端接收到客户端的连接释放确认报文,进入连接关闭状态,此次TCP连接结束
TCP的握手与挥手的更多相关文章
- 关于TCP的握手与挥手-----简单解释
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立.在socket编程中,这一过程由客户端执行conn ...
- TCP的握手和挥手
三次握手 三次握手具体过程是什么? 客户端发送一个数据包 将SYN置成1,表示希望建立连接 这个包中的序列号是X 服务器收到客户端发来的数据包 通过SYN得知这是一个建立连接的请求 于是发送一个响应包 ...
- TCP 握手和挥手图解(有限状态机)
1.引言 TCP 这段看过好几遍,老是记不住,没办法找工作涉及到网络编程这块,各种问 TCP .今天好好整理一下握手和挥手过程.献给跟我一样忙碌,找工作的童鞋,欢迎大神批评指正. 2.TCP 的连接建 ...
- TCP/IP握手协议
转自:http://www.js123.net/t/n/n/2013/4/28/n_272.shtml 这篇介绍的也很棒:http://www.cnblogs.com/rootq/articles/1 ...
- 两将军问题、拜占庭将军问题、TCP三路握手过程的联系
2015年初时产生了一个疑问:基于不可靠的通信链路,为什么在两将军问题中永远无法达到共识,而在TCP三路握手中可以? 今天抽出了一些时间进行研究发现,实际上TCP三路握手也不是完全可靠的,只是一个近似 ...
- TCP模型,控制标志,握手,挥手,长连接*
1. TCP协议 Transmission Control Protocol,传输控制协议 面向连接的协议 需要三次握手建立连接 需要四次挥手断开连接 TCP报头最小长度:20字节 2.模型图 3.T ...
- TCP/IP 3握手4挥手
转:摘自<图解TCP/IP>P204 三次握手与四次挥手的状态转移图如下: 如图,由于第二次握手接收端发送SYN+ACK信号所以握手只用了三次,挥手由于接收端ACK和FIN分两次发的,所以 ...
- UNP——第二章,TCP握手与挥手分析
1.握手 说明: 下面涉及 FIN,SYN,ACK之类数据时,都是由TCP服务收发, 涉及 accept, listen 之类api,都是 应用进程 完成. 都统一使用 客户端,服务端描述,请自行分辨 ...
- 抓包分析 TCP 握手和挥手
前言 首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务.在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂 ...
随机推荐
- 《基础知识》hashCode与equals的区别与联系
一.equals方法的作用 1.默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一 ...
- iOS 修改状态栏颜色
1.首先,苹果把UIViewControllerBasedStatusBarAppearance默认的值设为YES,是有他的道理的,新系统下,苹果希望我们的viewcontroller去控制statu ...
- [HackerRank] The Longest Common Subsequence
This is the classic LCS problem. Since it requires you to print one longest common subsequence, just ...
- 机械迷城MAC下载及攻略
点击下载 无意间在verycd上看到这个游戏,很好玩的一个游戏. 画风非常可爱,有点复古风. 这里是 机械迷城 的专题频道 http://pc.pcgames.com.cn/pczq/jxmc/
- 手动爬虫之淘宝笔记本栏(ptyhon3)
1.这次爬虫用到了之前封装的Url_ProxyHelper类,源代码如下 import urllib.request as ur class Url_ProxyHelper: def __init__ ...
- python文件上传工具实现
0x00 之前验收waf模块webshell效果,组网pc--waf--webserver,收集网络上的webshell样本,进行上传测试.由于数量较多8000+个样本, 只好写了个工具进行验收. w ...
- 开机启动/etc/rc.local失效无效怎么办?解决方法
开机启动/etc/rc.local失效问题的解决方法 第一种情况:当centOS 随机启动文件 /etc/rc.local 失效时请按如下修改1.echo /etc/rc.local >> ...
- (转) RabbitMQ学习之延时队列
http://blog.csdn.net/zhu_tianwei/article/details/53563311 在实际的业务中我们会遇见生产者产生的消息,不立即消费,而是延时一段时间在消费.Rab ...
- MB11 生鲜项目原料消耗发货功能
*&---------------------------------------------------------------------* *& 程序名: ZDQFI_925 * ...
- golang redis的模式订阅
c := redisPool.Get() psc := redis.PubSubConn{c} psc.PSubscribe("aa*") for { switch v := ps ...