TCP/IP基础知识

传输层
五元组:协议号+源IP + 源port + 目的IP + 目的port,通过五元组可以标识一个通信

协议:网络数据传输时,经过的网络节点约定的规则,最终体现为数据格式

IP:在网络层IP协议中包含ip地址这个字段,体现为起点和终点(绑定主机)
port:主机中的进程

传输层封装(包含port),网络层封装(包含IP字段),数据链路层封装(包含mac字段)

0-1023:知名端口号
1024-65535:操作系统动态分配的端口号

一个进程能否绑定多个端口号?可以(以Tomcat为例)
一个端口号能否被多个进程绑定?不可以(父子进程是可以的)
端口号,就是对应进程

UDP协议

16位源端口号+1位目的端口号
16位UDP长度,16位UDP检验和
数据(如果有)

UDP的特性:

无连接,不可靠。
面向数据报。(发送和接收都只能一次完成。应用层交给他多长数据,就一次发多长,不能拆分,也不能合并)
UDP的缓冲区。(没有发送缓冲区,有接收缓冲区。发送方不关心对方是否能接受到,接收方可能要接收多个。)
发送大小受限:64k。使用UDP传输超过64K的数据,需要应用层手动分包,多次发送,并在接收方手动拼装。
在应用层,应用程序实现类似tcp的机制,可靠,大小不限。

基于UDP的应用层协议:DNS域名解析协议

TCP协议

传输控制协议。
TCP设计原则:网络数据传输在保证安全的前提下,尽可能提高传输效率。
数据格式
16位源端口号 + 16位目的端口号
32位序号
32位确认序号
ACK SYN FIN 16位窗口大小

ACK:确认号是否有效。
SYN:请求建立连接,把携带SYN标识的称为同步报文段。
FIN:通知对方,本端要关闭了。携带FIN标识的称为结束报文段。

机制:安全机制,提升效率机制

确认应答机制(ACK):
TCP将每个字节的数据都进行了编号,即序列号。
应答是ACK标志位+32位确认序号,下一个序号是多少告诉发送端。

超时重传机制:
基于确认应答进制,没有收到应答(发送的数据丢包,应答的数据丢包),不能无限期等待
主机A发送数据给主机B,数据可能无法到达主机B。
如果主机A在一段时间内没有接受到主机B的应答数据报,就重新发送数据

接收方有可能会重复接收数据,需要去重。
TCP会动态计算最大超时时间:
1.系统动态计算:一个底数时长,每次重发,在底数的基础上*2(2的指数方),达到一定的重传次数,意味对方可能会无法接收,关闭连接。

你可能感兴趣的:(网络原理基础,网络,网络协议,网络通信,udp)