频道首页
目录
传输层协议
收藏
0
tcp/ip 模型
- 应用层
- 传输层
- 网络层
- 接口层 又称为tcp/ip协议族
tcp协议
1.什么是tcp? TCP是面向连接、可靠、基于字节流的传输层协议。
- 面向连接: 在传递数据之前 会测试主机的联通性,如果通才会传输真实数据 TCP提供一对一的连接。
- 无连接网络协议:不会测试主机连通性 直接传递数据 比如UDP协议 它的可靠性由上层协议来保障。传输数据速度更快,效率更高 。
2.端口号:
- 服务端一般固定 ,客户端随机产生
- 前1024端口号被知名程序使用
- 端口号范围2^16=66536个数 (0~65535)
- 一个端口号只能被一个应用程序使用
|TCP | 协议名称 |端口号 | 应用 | ------ | ------ | ------ | ------ | | http | 超文本传输协议 | 80| 超文本传输协议 网页等 | | https | 超文本传输加密协议 | 443 | 在http的基础上提供加密协议 http+ssl | | ftp | 文件传输协议 | 20 ,21 |使用比较多的文件传输协议 | | ssh| 安全壳协议 | 22 |更安全的远程登录连接| | telnet| 远程登录服务 |23 | 可以远程登录服务器 路由器交换机等 | | mysql | 数据库 | 3306 | | | redis | 数据库服务 |6379 | | | tomact | 应用服务器 | 8080| | | dns| 域名系统 | 53 | |
| udp | 协议名称 |端口号 |应用 | | ------ | ------ | ------ | ------ | | tftp | 简单文件传输协议 |69 | | | tpc | 远程过程调用 | 111 | | | ntp | 网络时间协议 | 123 | |
3.tcp协议头部格式 ::: center ::: ::: center :::
- 源端口、目标端口:源计算机上的应用程序的端口号,目标计算机程序的端口号,通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即 65536 (0-65535)
- 序列号:表示本报文段所发送数据的第一个字节的编号,作用就是用来解决网络数据包乱序的问题。
- 确认号(ack):确定对面收到了我的包 并且约定我下一个包的序号+1
- 数据偏移/首部长度:表示TCP报文段的首部长度,共4位 ,数据偏移也就是TCP首部最大60字节
- 控制位: URG:表示本报文段中发送的数据是否包含紧急数据。URG=1 时表示有紧急数据。当 URG=1 时,后面的紧急指针字段才有效。 ACK:确认位,表示前面的确认号字段是否有效。ACK=1 时表示有效。只有当 ACK=1时,前面的确认号字段才有效。TCP 规定,连接建立后,ACK 必须为 1。 PSH:急切位,告诉对方收到该报文段后是否立即把数据推送给上层。如果值为 1,表示应当立即把数据提交给上层,而不是缓存起来。 RST:重置位,表示是否重置连接。如果 RST=1,说明 TCP 连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。 SYN:同步位,请求连接 SYN=1 当SYN=1,ACK=1时,表示对方同意建立连接。 FIN:断开位,标记数据是否发送完毕。如果 FIN=1,表示数据已经发送完成,可以释放连接。
TCP三次握手 四次挥手
TCP是面向连接的协议,在传递数据之前 会测试主机的联通性 ,必须先建立一个连接,TCP建立连接通过三次握手来实现
三次握手建立连接
::: center ::: 三次握手 状态图
#####四次挥手断开连接 ::: center :::
telnet协议:
测试远端服务器的某项服务是否打开
语法 :telnet+ip地址 +端口
主页
会议室
Git管理
文章
云文档
看板