TCP特性
1.工作在传输层
2.面向连接协议
3.全双工协议
4.半开关
5.错误检查
6.将数据包打包成段,排序
7.确认机制
8.数据恢复,重传
9.流量控制,滑动窗口
更多关于tcp的内核参数,可参看man 7 tcp详细解释
tcp要先建立连接
系统当中 每打开一个 进程 会配pid(系统中的编号,方便管理)
端口号作用:确定进程
三类:
1.规定好的 知名的端口号 80 443 人为规定
2.系统随机分配(客户端 去访问服务端 系统会自动随机分配一个端口号给你)
3.人类自由使用
去访问服务器
下载文件 (FTP,tftp,nfs) ,访问网页(apche nginx tomact ISIS)
安装软件
提供服务 我的端口号一定要固定
客户端——服务端
telnet :
可以远程连接: 远程控制服务器
telnet ip地址 端口号 查看端口号是否打开
控制位:
URG(紧急位):是否有紧急数据
ACK(确认位):前面确认号字段是否有效
PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据
RST(重置位):说明与主机的连接出现了严重错误
SYN(同步位):请求建立连接或同意 建立连接的报文。
FIN(断开位):本端要关闭连接
TCP连接和断开连接过程
当pc1想和pc2建立起连接 将 连接信息写入报文
第一步 :pc1会发送一个 建立连接的请求报文 : 这个 报文中 有
-
报文的序号(seq=x)
-
同步位(请求建立连接关系: SYN=1 ACK=0 控制 位:当前两台机器处于什么状态? 建立连接 处于 连接 断开连接 )
第二步: 当pc2 收到消息以后 是不是要回复一个报文
- 报文的序号 (seq=y)
- ack确认号( 我希望你下一次发送 x+1 序号的报文 给你 )
- 控制位 SYN=1 ACK=1 请求建立连接 pc2 同意建 立连接
第三步:收到 pc2 同意建立连接的报文后
1.会发送一个x+1报文
2.会告诉对方 我希望你下次 发送y+1的序号报文给我
3.最后 将ACK=1 封装进去