概述
目录
首先要知道协议的作用
对于TCP的理解
什么时候应该使用TCP?
TCP的消息头
首先要知道协议的作用
1、约定通信
2、保障稳定的通信传输 应对突发情况
对于TCP的理解
TCP将用户数据打包构成报文段,它发送数据时启动一个定时器,另一端收到数据进行确认,对失序的数据重新排序,丢弃重复的数据。TCP提供一种面向连接的可靠的字节流服务,面向连接意味着两个使用TCP的应用(B/S)在彼此交换数据之前,必须先建立一个TCP连接。
TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。
TCP 是一种可靠的协议,它能够保证数据包的可靠性交付,TCP 能够正确处理传输过程中的丢包、传输顺序错乱等异常情况。此外,TCP 还提供拥塞控制用于缓解网络拥堵。
TCP数据是封装在一个IP数据中。
什么时候应该使用TCP?
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。
TCP的消息头
要知道 传输数据是通过端口号识别不同的程序 所以每一个程序都有自己的端口号
假设设备A发送“你好”给设备D
A发送给D 需要D的ip地址(发送给D)
D的端口号(D接收后判断给那个程序接收)
回执消息(D接收到需要回应,好让A知道是否接收到消息)
需要A的ip地址 (因为D需要回执消息)
和A的端口号 (回执给哪个程序)
响应时间 (A发送给D 到 D回复到A 总共需要的时间 )
A响应时间内没有收到消息后 会超时重发(意味着在网卡里面有备份 只有收到响应后才会删除备份)
发送的数据有过期时间 但另一端接收到消息后过期时间会重新刷新
传输数据的过程要求保证时间绝对一致(时间同步网)
超大数据文件会导致其他传输断网(A向D一次性传输10G数据,比特流是连续的)
所以需要拆分大数据包 给其他的应用传输数据的时间 不让其他应用断网
D收到全部数据后再重新组装 但是分包发送 有的包可能会超时重发,或者什么虚电路 所以顺序不一定 所有要有序号来标明
虚电路是分组交换的两种传输方式中的一种。在通信和网络中,虚电路是由分组交换通信所提供的面向连接的通信服务。在两个节点或应用进程之间建立起一个逻辑上的连接或虚电路后,就可以在两个节点之间依次发送每一个分组,接收端收到分组的顺序必然与发送端的发送顺序一致,因此接收端无须负责在收集分组后重新进行排序。虚电路协议向高层协议隐藏了将数据分割成段,包或帧的过程。
D只要收到A所有的数据后才能根据序号组装 所有A发送要有一个数据总大小
当消息传输过去后,那么怎么判断在发送的过程中判断数据是否被修改呢?这就用到了CRC校验码
CRC校验原理:
其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。
最后
以上就是粗心小松鼠为你收集整理的TCP协议首先要知道协议的作用对于TCP的理解的全部内容,希望文章能够帮你解决TCP协议首先要知道协议的作用对于TCP的理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复