对于tcp,udp的具体传输说明:
https://blog.csdn.net/Z_JUAN1/article/details/81362571
一、认识IP地址
IP协议有两个版本,IPv4和IPv6,一般我们都用IPv4。(IPv4和IPv6不兼容)
1)IP地址就是在IP协议中,用来标识网络中不用主机的地址。
2)对于IPv4来说,IP地址是一个4字节的,32位无符号整数。
3)我们通常使用“点分十进制”,比如:192.168.0.1 ,用点分割的每一个数字表示一个字节,范围0~255.
二、源IP地址和目的IP地址
在IP数据包头部,有两个IP地址,分别为:源IP地址和目的IP地址
那么光有IP地址就可以通信吗? 比如你想发送给对方消息到QQ上,却发到了微信上。所以我们还需要一个标识来区分,这个数据要给那个程序进行解析。
三、端口号
端口号是传输层协议的内容
1)端口号是一个2字节16位无符号整数(0~65535)
2)端口号用来标识一个进程,告诉操作系统数据要交给哪个程序进行处理
3)IP地址+端口号能够标识网络上的某一台主机的某一个进程。
4)一个端口号只能被一个进程占用
那么为什么不用进程 pid 来表示呢? 是因为:一个进程退出之后再运行pid会发生变化。
一个进程可以绑定多个端口号,但是一个端口号不能绑定多个进程。
四、TCP协议
TCP协议(传输控制协议)
1)传输层协议
2)有连接 :先建立连接(类似打电话,要先接通,才能说话)
3)可靠传输 :(面向连接是可靠的前提,肯定可以到达目的端)
4)面向字节流: (灵活接收,数据间无明确分割,发送两条可能会被当成一条,就像是从一端倒水,从另一端节水)
五、UDP协议
UDP协议(用户数据协议)
1) 传输层协议
2)无连接 : 不建立连接(类似发短信,不管你能不能接收)
3)不可靠: 无连接所以不可靠,不知道数据是否到达目的端(对方手机停机接收不到短信)
4)面向数据报: 不可分开接收,是一个整体,一个与一个之间有分割(就像是冰块,但存在冰块太大,不能传输)
六、网络字节序
就是数据存储的方式
TCP/TP协议规定:网络数据流应采用大端字节序,即低地址高字节