您的位置:首页 > 理论基础 > 计算机网络

IP层怎么知道报文该给哪个应用程序区分UDP报文还是TCP报文 TCP和UDP的区别 具体网络层的操作该怎么做 server端监听端口,但还没有客户端连接进来,此时进程处于什么状态?

2019-07-01 22:23 344 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41007781/article/details/94411506

IP层怎么知道报文该给哪个应用程序,它怎么区分UDP报文还是TCP报文
根据端口区分;
看ip头中的协议标识字段,17是udp,6是tcp

1)TCP和UDP区别
1) 连接

TCP是面向连接的传输层协议,即传输数据之前必须先建立好连接。

UDP无连接

2) 服务对象

TCP是点对点的两点间服务,即一条TCP连接只能有两个端点;

UDP支持一对一,一对多,多对一,多对多的交互通信

3) 可靠性

TCP是可靠交付:无差错,不丢失,不重复,按序到达。

UDP是尽最大努力交付,不保证可靠交付

4)拥塞控制,流量控制

TCP有拥塞控制和流量控制保证数据传输的安全性。

UDP没有拥塞控制,网络拥塞不会影响源主机的发送效率。

5) 报文长度

TCP是动态报文长度,即TCP报文长度是根据接收方的窗口大小和当前网络拥塞情况决定的。

UDP面向报文,不合并,不拆分,保留上面传下来报文的边界。

  1. 首部开销

TCP首部开销大,首部20个字节。

UDP首部开销小,8字节。(源端口,目的端口,数据长度,校验和)

2)TCP和UDP适用场景

从特点上我们已经知道,TCP 是可靠的但传输速度慢,UDP 是不可靠的但传输速度快。因此在选用具体协议通信时,应该根据通信数据的要求而决定。

若通信数据完整性需让位与通信实时性,则应该选用TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)。

具体网络层的操作该怎么做

server端监听端口,但还没有客户端连接进来,此时进程处于什么状态?
这个需要看服务端的编程模型,如果如上一个问题的回答描述的这样,则处于阻塞状态,如果使用了epoll,select等这样的io复用情况下,处于运行状态

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐