传输控制协议(TCP,Transmission Control Protocol)
简介:
应用程序使用传输层的TCP协议来完成数据的可靠传输,是因为TCP协议能保证数据完整准确地、按正确的序列在网络上传送到目标地址。TCP协议的特性是提供可靠的、面向连接、字节流传送服务。TCP实现传送的过程为首先在通信双方:客户端与服务器之间提供连接,一个TCP客户与某个给定服务器建立连接,通过建立的连接与服务器交换数据,最后结束连接。
1、建立连接 (nc)
2、怎么看是否连接 (netstat -natp)
如果一段时间不操作,百度会自动断开,这时需要重新连接
HTTP/1.0 200 OK是百度响应,格式如下:头部+空行(两次换行)+数据。
数据中也分head和body。
建立连接(开辟资源的过程):
三次握手(单向)保证数据的准确性和可靠性
Syn:数据包(不包含数据)
Ack:应答
建立连接后,双方开辟资源,在各自的内存里开辟进程、和队列,实现数据包的交互,未来无论发送端怎么走线只要所发数据满足接收方队列规则,便可进行通信。所以连接并不是物理连线。
Socket:套接字。
条目,对开辟资源包装(接受队列,发送队列,开辟资源等)
条目:下图的表格
APP 通过IO 模型与内核进行交互
APP与APP之间的交互,实则是APP先与发送端的内核交互,然后发送端的内核与接受的内核进行交互,接收端的内核再和接收端的的APP交互。所以APP某种意义上没有直接交互。
Socket:
只要四元组中的元素不完全一模一样就可以建立连接,否则冲突
四次分手(资源释放的过程)
第三步是为了防止服务器有要发送的数据未发送时就以先分手的情况发生
抓包