第一章 基本概念(二)

来源:互联网 发布:三维重建软件 编辑:程序博客网 时间:2024/05/30 22:48
第一章 基本概念(二)
技巧8:避免重新编写TCP
1、UDP问题
1)在合适时间内没有收到应答时,重传请求报文的功能
2)确保应答与请求正确匹配
通过启动一个RTO定时器,每条请求附加一个序列号
2、T/TCP
既拥有TCP的可靠性,又便面连接建立带来的开销
对TCP的扩展,会免除TCP在连接建立阶段使用的三次握手机制,并缩短连接拆除时的TIME_WAIT阶段

技巧9:要认识到TCP是一个可靠的,但并不绝对可靠的协议
1、可靠性
1)数据到达接受端,可能损坏、重复或者错序,这个发送端无法保证
2)只能保证数据按序而且无损,但是无法保证数据都会到达
2、故障模式
1)永久或临时的网络中断
①发送一个ICMP不可达
②重传12次之后放弃
2)对等的应用程序崩溃
对等实体崩溃与对等实体调用close是无法区分的
TCP发出FIN,作为EOF使用,表示已经没有数据发送
3)运行对等应用程序的主机崩溃
①实体没有重启,不可达
②实体重启,回送一个RST

技巧10:记住,TCP/IP不是轮询的
1、TCP无法将连接的丢失立即通知应用程序
正在向对等实体发送数据的应用程序在TCP结束重试之前,不会发现连接已经丢失的
原因:
1)对可用网络带宽的耗费
2)出现网络故障时维护通信的能力
2、保持活跃
保持活跃机制:检测死连接,但这对应用程序来说通常没什么用处
TCP会在连接空闲一段时间间隔后,向对等实体发送一个特殊的段。如果可达,以ACK响应。不可达,以RST响应
问题:
1)默认时间区间太长,修改太短的话,违背了清楚长时间死亡连接的最初目标2
2)不仅检测死连接,而且丢失了这些连接
3、心跳信号
1)交互的不同类型的报文都有一个用来识别报文类型的首部
引用一种新的报文类型MSG_HEARTBEAT,可以由一端传递给另一端
收到报文后,应用程序只是将报文返回给其对等实体
2)为对等实体提供的数据是没有固定记录或报文概念的字节流
为心跳报文使用一条独立的连接
①独立的线程来控制心跳函数
②常规定时机制

技巧11:提防对等实体的不友好动作
1、检测客户端的终止
在读操作上设置一个定时器,如果客户端在某段时间区间内没有发出请求,服务器就假定客户端已经不存在
2、检测无效输入
造成程序崩溃:缓冲区溢出和指针丢失

技巧12:成功的LAN策略不一定能推广到WAN中区
1、问题
1)由于WAN引入额外的时延,在WAN性能可能不尽如人意
2)在LAN上可以工作的不正确代码,在WAN可能出现问题

技巧13:了解协议是怎样工作的
TCP/IP协议栈的主要信息源是RFC

技巧14:不要把OSI七层参考模型太当回事
1、OSI模型

2、TCP/IP模型

应用层负责执行分配给OSI模型中应用、表示和会话层的所有工作
传输层负责处理端到端的通信,定义了TCP和UDP协议
网际层定义了IP、ICMP和IGMP协议
接口层负责处理主机和底层网络硬件之间的接口
对等通信:

原创粉丝点击