目录
1.端口号
1.1知名端口号
1.2注意
2.UDP协议
2.1UDP报头的格式
2.2UDP的特点
2.3UDP的缓冲区
1.端口号
端口号的作用标识一个网络中主机的一个进程。
网络之间通信无非就是,发送端和接受端进程之间的通信,所以通过ip地址找到目标主机之后,在使用端口号找到目标的进程。
1.1知名端口号
有一些常用的服务器,他们的端口号是固定的,我们在写服务器绑定端口号的时候要避开这些固定的端口号(知名端口号)。
使用命令
cat /etc/services
查看知名端口号
未完全列举
1.2注意
一个进程可以绑定多个端口号,但是一个端口号不能绑定多个进程。
从定义出发来理解这个问题,端口号是用来标识进程的,可以用多个端口号标识一个进程,
但是一个端口号绑定了多个进程,那么主机收到数据之后应该交给哪个进程呢?
2.UDP协议
2.1UDP报头的格式
注意:udp的长度(报头 + 数据)只有16位这么大,换算过来就是64kb,如果说你的数据超过64kb,多出的部分会被丢弃。
2.2UDP的特点
1.无连接:知道ip端口直接进行传输
在创建出套接字之后,不用建立连接,直接可以进行通信。
2.不可靠:没有确认机制,也没有重传机制,发送的数据丢了就丢了。
首先不可靠并不是一个缺点,虽然UDP不可靠,但是相比TCP会更快一些,因为不用建立连接,不用维护连接,用于一些对数据传输可靠性要求不高的应用场景。
3.面向数据报:不能灵活的控制读写
使用UDP发送50个字节的数据,每次发10个发5次,接受方就需要接受5次。
2.3UDP的缓冲区
1.无发送缓冲区:udp只想快一点吧数据发送出去,在调用sendto接口,会将数据直接交给内核。
2.接收缓冲区:udp是有接受缓冲区的,但是不能保证接受数据的顺序,如果缓冲区满了,再发过来的数据也会被丢弃。