本文共 1294 字,大约阅读时间需要 4 分钟。
1)在网络上(先不考虑私网):IP的作用是唯一标识一台主机,主机拥有唯一的一个IP地址,(主机可以拥有多个IP地址)
2)Port的作用标识主机上的唯一一个进程,一个进程可以拥有多个port,而一个port只能属于一个进程 3)IP+port一组:可以标识网络上的一台唯一的主机+该主机上的唯一一个进程 4)五元组:先不管协议:远端+本地,标识网络上唯一一个端对端的通信通道 五元组:源IP, 源端口 ,目的IP , 目的端口 ,协议号 5)通过工具来演示 Windows上: 6.常见的端口划分策略 a)建议1024以下的端口留给知名的一些服务取用(well known) 导致监听1024以下的端口时,一般需要使用管理员权限 b)常见的端口 MYSQL:使用3306端口 DS服务器:使用53端口1.特征/属性:不可靠的,面向报文的,无连接
2.解包用的是UDP长度,分用用的是目的端口 解包:拆掉包头 分用:分给进程 补充:校验和(签名):校验数据的正确性(数据没有发生错误变化) 失败了怎么办? 丢掉‘ 3.UDP的一些知识点 UDP的Socket既能读,也能写,这个概念叫做全双工 UDP特点:不可靠,无连接,面向报文 4. 1)DNS协议(Domain Name Service) 域名 2)DHCP协议:动态分配Ip地址用的1.首部长度用来解包,目的端口用来分用
2.特点:可靠性 有连接 面向流 TCP为了保证可靠性而实现的一些机制。 可靠性的一种表述:作为一个发送方,希望知道我的数据接收方是否收到(确认应答) 通过序号+确认序号确认收到的是哪句话 序号:Sequence Number/SN 确认序号:Acknowledge Sequence Number/ASN 1)发送的数据都带着SN 2)如果数据中的ACK被置为1,表示该TCP包有确认含义(发送数据和确认含义公用的) 3)ASN可以计算出收到哪些数据 细节: 实际来说,一个TCP的通信过程中,只有第一个Segment的ACK没有被置为1URG:Urgent 紧急+配合16位紧急指针使用
PSH:Push 建议别缓冲这份数据 校验和:和UDP的作用类似,检查数据的正确性再看确认应答机制(ACK机制以及SN和ASN)
前置知识:数据在网络上的传输过程中不一定走的是同一条路。数据在网络上的传输过程中不一定走的是同一条路。可靠性的第二种含义:保证数据是按序收到的
TCP如何保证尼?利用SN在接收方做排序超时重传
超时:超过了估计时间 重传:把没有收到应答的数据重新发送一次 SN的第三个作用,去除接收到的重复报文 超时时间是动态的,根据网络情况跳转,一般实现时,遇到丢包,超时时间翻倍总结
TCP围绕可靠性来实现/学习 可靠性的含义: 第 0 层含义:数据不会出现错误。 By 校验和 第 1 层含义:确保发送的数据,对方有收到 By 确认应答(SN/ASN/ACK) 第 2 层含义:确保发送的数据,对方是按序收到 By SN转载地址:http://xylzi.baihongyu.com/