首页 > 其他分享 >Tcp/ip协议

Tcp/ip协议

时间:2023-03-17 19:12:52浏览次数:47  
标签:协议 ACK ip 报文 SYN Tcp 发送 连接

Tcp/ip协议

Tcp:

1.传输控制协议
2.可靠的,面向连接的协议
3.传输效率低
because每次发送的请求报文都需要回应,So 安全且低效
TCP 支持的应用协议主要有:Telnet,FTP,SMTP等

UDP:

1.用户数据报协议

2.不可靠,无连接的服务
3.传输效率高
because每次发送的请求报文都不需要回应,So 不安全但高效
UDP 支持的应用协议主要有:NFS(网络文件系统),SNMP(简单网络管理协议)
DNS(主域名称系统),TFTP(通用文件传输协议)等

 

TCP是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接
认识主要指针:
a.同步指针SYN:建立连接时用来同步序号
   SYN=1 ACK=0 表示一个请求报文段
   SYN=1 ACK=1 表示同意建立连接
b.确认指针ACK:ACK=1时表示这是一个确认的Tcp包,0则不是,
  只有在第一个建立的报文中不会出现ACK
  c.终止指针FIN:FIN=1时,表示此报文段的发送端数据已经发送完毕,并要求释放传输连接

*****三次握手四次挥手:

三次握手建立连接:

1.第一次对话:“我想给你发送数据可以吗?”

   a. A向B发出连接请求数据包
   SYN=1 ACK=0 seq=x

2.第二次对话:“可以,你什么时候发?”
   b. B向A发送同意连接和要求同步
   SYN=1 ACK=1 seq=y ack=x+1

3.第三册对话:“我现在发,你接着吧!”
    c. A再发出一个数据包向B确认同意的要求同步
    ACK=1 seq=x+1 ack=y+1

———— 三次对话的目的是使数据发送和接受同步,三次握手后,
A才向B正式发送数据

四次挥手释放连接:

当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送一个报文(没有数据),
其中 FIN 设置为1, 服务器B收到后会给应用程序一个信,这时A那边的连接已经关闭,
即A不再发送信息(但仍可接收信息)。 A收到B的确认后进入等待状态,等待B请求释放连接,
B数据发送完成后就向A请求连接释放,也是用FIN=1 表示, 并且用 ack = u+1(如图),
A收到后回复一个确认信息,并进入 TIME_WAIT 状态, 等待 2MSL 时间。

为什么使用三次握手?

1. 一次握手,不够安全,服务端不知道是否收到
2. 两次握手,服务端发出消息后,如果客户端没有收到,就会产生资源浪费
3. 三次握手,服务端和客户端都进行了确认,可以直接开始连接

为什么使用四次挥手?

1. 一次挥手直接断开,可能会导致数据丢失
2. 两次挥手,可能会面对数据传输未完成
3. 三次挥手如果还有要传输的会有缓冲时间,但服务端不知道对方是否收到消息
4. 四次挥手,双方都确认过,可以断开连接

标签:协议,ACK,ip,报文,SYN,Tcp,发送,连接
From: https://www.cnblogs.com/zhang-h/p/17227891.html

相关文章

  • 限制可以访问AKS负载均衡器服务的IP地址
    今天主要给大家介绍如何使用NSG来限制可以访问AKS负载均衡器服务的IP地址。部署过AKS的朋友应该都清楚,当我们部署AKS集群的时候,系统会默认帮我们创建一个LoadBalancer资源,......
  • Eclipse中debug时String太长怎样查看全部
    场景在Eclispe中进行打断点调试时,取得从接口返回的json数据,转换成String字符串。想取出String的值进行格式化显示,如下:最后直接被省略号代替。实现通过控制台输出命令将其输......
  • bat监听某个ip端口并向当前桌面发送提醒
    使用bat每隔5分钟telnet一下某些ip的端口,并发送弹窗消息提醒。ip和端口写在这个文件ipport.txtxxx.xxx.xxx.xxxportbat脚本内容batname.bat:@echooff:st......
  • Javascript使用function创建类的两种方法
    1、使用function类1234567891011121314151617181920212223//myFunction.jsvarCMyFunc=function(){//类的公共方法,供外部调用this.Fun......
  • 2022 年值得推荐的 Vue 库 ,富文本Tiptap
    https://blog.csdn.net/maxue20161025/article/details/127692983 https://github.com/Leecason/element-tiptap/blob/master/README_ZH.md  ---Tiptap  ......
  • COSMOS上实现IP DIAL功能
    功能描述:  IPdial功能是说在通话设置中,我们可以指定一些IP号码,然后在phonebook中选择某个联系人,选择IPDial,这样,手机就会自动将激活的IP号码加......
  • sipp3.6 on centos7安装部署
      概述在VOIP软交换的开发过程中,必然需要对软交换进行批量压测。SIP压测工具一般都是sipp,免费,开源,功能足够强大,配置灵活,优点多。环境centos7.9cmake3.6sippv3.......
  • 前端-笔试刷题-JavaScript
    基本数据类型检测题目描述请补全JavaScript函数,要求以字符串的形式返回参数的类型。注意:只需检测基本数据类型。点击查看代码function_typeof(value){//......
  • 4G/wifi 无线计量插座支持云平台对接提供API接口MQTT协议
      数据上报通信协议默认TCP/UDP协议,json字符串格式上报。包含电流值,设备ID号。{"U":221,//电压值,单位伏特"I":2.62,//电流值,单位安培"P":579,//功率值"ID......
  • 如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (下)
    上文给大家详细介绍了在Apinto上实现HTTP与gRPC的协议转换的基本内容,本篇我们将继续讲解如何在Apinto-Dashboard中进行配置。配置ApintoApinto上我们提供了......