博客
关于我
[编程] TCP协议概述
阅读量:658 次
发布时间:2019-03-15

本文共 1498 字,大约阅读时间需要 4 分钟。

TCP 协议概述

1.TCP提供一种面向连接的、可靠的字节流服务。

2.两个应用程序通过TCP连接交换8bit字节构成的字节流。

3.每个TCP首部都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。

4.一个IP地址和一个端口号也称为一个插口(socket),出现在最早的TCP规范(RFC793)

 

TCP 保证可靠性:

1.应用数据被分割成 TCP 认为最适合发送的数据块

2.当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段,超时重发

3.当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认

4.TCP 将保持它首部和数据的检验和

5.如果必要, TCP 将对收到的数据进行重新排序

6.TCP 还能提供流量控制

 

TCP是一个面向连接的协议。

1.使用telnet与tcpdump互相配合进行测试

115.159.28.111.51142 > 10.141.14.117.http: Flags [S], seq 1784777886, win 29200,

10.141.14.117.http > 115.159.28.111.51142: Flags [S.], seq 1181145550, ack 1784777887, win 28960,

115.159.28.111.51142 > 10.141.14.117.http: Flags [.], ack 1, win 229,

 

seq:Sequence number(顺序号码)

ack:Acknowledge number(确认号码)

syn:SYN(synchronous建立联机)

 

主机A:115.159.28.111   主机B:10.141.14.117.http

第一次握手:A发送syn=1, 产生随机seq=1784777886

第二次握手:B发送 随机产生seq=1181145550,ack=接收到的seq+1 1784777887

第三次握手:A发送 ack=1,

 

TCP首部标志位:

S SYN 同步序号

F FIN 完成发送

R RST 复位

P PST 推送

. 置为0

 

结束连接:

TCP 有一个特别的概念叫做 half-close,这个概念是说,TCP 的连接是全双工(可以同时发送和接收)连接,因此在关闭 连接的时候,必须关闭传和送两个方向上的连接。客户机给服务器一个 FIN 为1的 TCP 报文,然后服务器返回给客户端一个确认 ACK 报文, 并且发送一个 FIN 报文,当客户机回复 ACK 报文后(四次握手),连接就结束了。

 

客户端状态迁移:

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

服务端状态迁移:

CLOSED->LISTEN->SYN 收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

 

长连接:指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。

短连接:是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。

 

ulimit -a

ulimit -n用于限制进程能够打开的文件描述符的最大数目。因为任何设备在linux下都是文件,通信的接口也有专门的接口文件负责,所以linux下进程tcp链接的最大并发量也受限于该值

转载地址:http://rsnmz.baihongyu.com/

你可能感兴趣的文章
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
MFC模态对话框和非模态对话框
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>
MongoDB可视化客户端管理工具之NoSQLbooster4mongo
查看>>
Mongodb学习总结(1)——常用NoSql数据库比较
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
mongodb定时备份数据库
查看>>
mppt算法详解-ChatGPT4o作答
查看>>
mpvue的使用(一)必要的开发环境
查看>>
MQ 重复消费如何解决?
查看>>
mqtt broker服务端
查看>>
MQTT 保留消息
查看>>