关于端口
互联网中任何两台主机之间通讯,都是从一端到另一端,又称端到端的通讯。
端口又是什么?
现代的操作系统都装有很多个应用程序,信息传到了我的电脑上我怎么知道这个信息就是传给我的QQ应用程序的呢?我的QQ程序有反应但是我的MSN怎么没有反应呢?
原因就是:我的系统有很多个端口号,每一个应用程序进程都绑定了本地一个独一无二端口号,这样每一个程序都与一个端口号绑定。比如QQ绑定了本地的6666端口号(假设都是UDP端口号),这个一个消息发来,消息报文头显示要发到6666这个端口号,上面的进程也就是QQ程序了,因为MSN绑定的是8888端口号,所以消息来的时候QQ 有反应而MSN没有反应。
端口号是一个16位的二进制数。因此TCP协议有2的16次方个,而UDP也有2的16次方个不同的端口号。
1~255之间的端口号由Internet浩分配机构来管理
256~1023端口号通常都是UNIX系统占用
大多数tcp-ip协议临时分配1024~5000之间的端口号
大于5000的端口号为其他服务预留端口号
关于TCP协议
TCP是传输层最常用的协议,也是一个比较复杂的协议
TCP在传输数据前先建立链接,结束传输时关闭链接
TCP的建立链接的三次握手
第一次握手:客户端向服务端发出要连接的命令
第二次握手:服务端向服务端发出是否要连接的消息
第三次握手:客户端确认链接
TCP关闭连接的四次握手
第一次握手:客户端发送终止连接命令给TCP协议层,然后TCP协议层发送给服务端关闭链接的报文段
第二次握手:服务器接收到关闭报文段后向客户端发出确认消息(服务器端还可以继续发消息,称作半关闭状态)
第三次握手:如果服务器端没有消息发送,就告诉服务器端的TCP协议层发送关闭链接消息
第四次握手:客户端收到关闭连接的报文段后,发出确认,链接完全关闭。
关于UDP协议
特点:
①用户数据报协议UDP协议是无连接,不可靠的通信协议,不与远程的UDP模块保持端对端的链接。
②UDP数据传输过程中可靠措施就是差错校验,如果发生错误则只是抛弃这个数据报
③如何目标受到的数据报端口号不能匹配则抛弃这个数据报
④高效,低延时性