论坛首页 入门技术论坛

tcp/ip协议 温习(1)

浏览 2729 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-01  
这几天一直在浏览了tcp ip illustated vol1(后简称illustrated)和internetworking with tcpip vol1,发现曾经学习过的许多关键知识点已经忘的差不多了,有点点惊讶自己的遗忘速度。于是记录一些自己感兴趣的点。
希望能做到,温故而知新。
可能会比较关注这几个协议:
  • TCP 这个是最重要的,也是最复杂的,很多思想非常精妙
  • IP 重要性仅次于TCP
  • SNMP 兴趣点,当时学的时候觉得超级难,现在感觉好简单
  • ARP,RIP,OSPF 基础东西还是要看一下
  • UDP,FTP,icmp 浏览一下


随意的记录,看到哪就写哪,想到哪就写哪。而且,有的会是错的,因为里面一部分是个人理解。
仅为学习一下。

1.ip
illustated用了如下几个单词来形容:unreliable, connectionless datagram delivery service.
翻译:不可靠的,无连接的数据报服务
illustated分别解释了unreliable与connectionless
但是没有解释数据报服务,记得谢希仁那本书里面有与虚电路相比较详细的比较,背过好几次。
unreliable: best effort service, no guarantee
connecionless: 不会维护状态信息


2.TCP为什么要三次连接?为什么不是两次?
(这部分摘自网络,记得以前仔细想过这个问题,但是现在又忘了,等脑壳清醒了好好想想三次建立连接,四次释放)
我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。 现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

3.TCP TTL字段的作用:娃哈哈。以前上TCPIP被老师问过,记忆深刻。简单说,就是防止死循环了。比如说,当路由器瘫痪或者两个路由器之间的连接丢失时,路由协议有时会去检测丢失的路由并一直进行下去。在这段时间内,数据报可能在循环回路被终止。TTL字段就是在这些循环传递的数据报上加上一个生存上限。


4.Traceroute 要注意的问题(见tcpip详解中文版):第一.并不能保证现在的路由也是
将来所要采用的路由,甚至两份连续的I P数据报都可能采用不同的路由。如果在运行程序时,路由发生改变,就会观察到这种变化,这是因为对于一个给定的TTL,如果其路由发生变化,Traceroute 程序将打印出新的IP地址。
第二,不能保证ICMP报文的路由与Traceroute 程序发送的UDP数据报采用同一路由。
这表明所打印出来的往返时间可能并不能真正体现数据报发出和返回的时间差(如果UDP数
据报从信源到路由器的时间是1秒,而ICMP报文用另一条路由返回信源用了3秒时间,则打印
出来的往返时间是4秒)。
第三,返回的ICMP报文中的信源I P地址是U D P数据报到达的路由器接口的I P地址。这与
I P记录路由选项(7.3节)不同,记录的I P地址指的是发送接口地址。由于每个定义的路由器都有2个或更多的接口,因此,从A主机到B主机上运行Traceroute 程序和从B主机到A主机上运行Traceroute 程序所得到的结果可能是不同的。

5.TCP计时器:四个,重传计时器,keep alive计时器,坚持计时器与时间等待计时器
  1. 重传计时器 报文丢失 要设置超时时间,重传报文
  2. keep alive计时器:过一个时间段探测tcp连接是否有效
  3. 坚持计时器:流量控制中的0窗口大小通报
  4. 时间等待计时器:关闭连接



6.在对 ICMP 差错报文进行响应时,永远不会生成另一份 ICMP 差错报文,why?原因同上,避免死循环:如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去。另外,在发生拥塞时,差错报文本身会加剧网络的拥塞情况。
PS:ICMP 报文使用 IP 发送数据,但并不把它看成是高层协议,它是 IP 的一个必要部分。用 IP 传递 ICMP报文的原因是可能需要经过几个物理网路才能到达其最终目的地,因此不能仅用物理传送来投递它们

7.引入icmp原因:ip不提供出错信息,网络中存在差错,ip不提供可靠性保证

8.tcp拥塞控制策略:慢启动,加速递减。当发生报文丢失时,立即将拥塞窗口大小减半,对于发送窗口中的数据,重传计时器时限加倍。在启动新连接或者拥塞之后增加通讯量时,仅以一个报文段作为拥塞窗口的初始值,每当收到一个确认,则将拥塞窗口加1。尾部丢弃与随机早期丢弃:尾部丢弃可能会导致全局同步。连续的数据来源于不同的站点,尾部丢弃策略可能
使得路由器丢弃来自n个连接的一个报文段,这将使tcp的n个实例同时进入慢启动状态。RED则会避免这种情况。

顺便贴下两个连接:
http://hi.baidu.com/layer7/blog/item/cb1243166bd6f11c962b430f.html
http://hi.baidu.com/layer7/blog/item/b140a79bdef70db1c8eaf422.html
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics