基于tcp/ip协议的网络编程的一点感悟 ---关于ip和port作为通讯一端的唯一标识的认识
来源:互联网 发布:proxifier linux 编辑:程序博客网 时间:2024/05/26 02:51
对于基于tcp的应用程序来说,无论是客户端,还是服务器端,唯一标识对端id的是socket pair {本地ip:本地port, 远端ip:远端port}
,底层的ip协议数据包肯定包含源ip和port,目的ip和port, 当此数据包到达目的地时,目标主机的tcp连接就会匹配此连接的soket pair是否和数据包的socket pair 相同,如果相同,则数据进入tcp流队列,等待应用程序获取,如果应用程序此时堵死在处理程序中,导致数据包没有被取走,那么网络上过来的数据包就不会进入tcp流队列,而是被丢弃,并返回给对端当前可用缓冲为0,从而对端也堵死在那里,就像一条水管,如果一端被堵死,那么另一端的水就进不来,如果此端很顺畅,那么水在管道中流的也很顺畅,所以此协议被成为流协议。
对于基于udp的应用程序也是一样,无论是组播,还是广播,如果ip数据包到达目的端,udp收包函数匹配socket pair {本地ip:本地port, 远端ip:远端port},不如不相同,则丢弃,并从ip队列中删除,如此客户端一直往对端仍数据,而不管对端缓冲队列是否已经满,服务器端缓冲队列如果已满,则直接丢弃后来的数据。所以成为数据报协议。
同时也终于明白了如下内容的意义:
第一列代表协议类型, 第二列代表socket pair 的本地ip和port,第三列代表socket pair 的远端ip和port,第四列代表当前连接的状态。
- 基于tcp/ip协议的网络编程的一点感悟 ---关于ip和port作为通讯一端的唯一标识的认识
- 基于TCP/IP协议的网络编程
- 基于TCP/IP协议的网络编程—Socket编程
- TCP/IP协议的认识
- 基于TCP/IP协议的网络攻击
- 基于TCP/IP协议的网络攻击
- 基于TCP/IP协议的网络攻击
- 网络编程的OSI协议和TCP/IP协议
- 基于TCP/IP协议的socket编程
- 基于TCP/IP协议的Socket编程
- 基于TCP/IP的网络编程步骤
- 基于TCP/IP的网络编程
- java网络编程学习笔记之一(TCP/IP协议与UDP协议的区别和认识)
- AsyncSocket实现tcp/ip的通讯协议
- 关于TCP/IP的协议
- 基于TCP/IP协议及UDP协议的socket编程
- TCP/IP协议的简单认识
- TCP/IP网络是如何通讯的
- SQL中CONVERT编码
- http://acm.hdu.edu.cn/showproblem.php?pid=1540 更新节点,询问节点所在的位置有多少连续的区间
- 内核和用户空间共享内存的实现例程-proc和mmap
- 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
- (转)C#中判断是否为数字
- 基于tcp/ip协议的网络编程的一点感悟 ---关于ip和port作为通讯一端的唯一标识的认识
- picasa lingoes(灵格斯) 冲突
- cmpp发送超长短信息
- 珍惜时间, 珍惜生命
- jquery表单验证
- 数据结构与算法的重要性
- oracle命令使用
- Oracle多行记录合并 连接/聚合字符串的几种方法
- 基于S3C6410 的windows ce 6.0 DirectDraw使用三缓冲