计算机网络复习笔记
1、运输层负责的是主机中进程的通信
2、复用和分用:关于发送方和接收方使用同一协议对从上层接受的数据、发送给上层的数据的处理
3、运输层的差错检测
4、运输层协议:
①用户数据报协议:UDP
②传输层控制协议:TCP
5、关于进程的标识
①同一计算机中标识不同的进程:使用进程标识符PID
②网络通信中标识不同的进程:使用端口号——把工作交给接收方某一指定的端口之后,剩下的工作就由TCP来完成,从而将交付给最后的进程PID
6、TCP重点:可靠传输、流量控制、拥塞控制
①面向连接:通信前必须建立连接(通电话前必须拨号)
②每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
③可靠交付:无差错、不丢失、不重复、按序到达
④TCP提供全双工通信。设有发送缓存和接收缓存(用于存放上层应用程序要发送的或待接收的数据)
⑤面向字节流:把应用程序发过来的数据块(无论是多少块)仅仅都只是当作数据流来处理,处理完之后发送出去时可能变成大小不同的数据块发送出去。 TCP很佛系又很有秩序,前面说了它有接收缓存和发送缓存,所以就是当缓存中的东西不够多、数据太少或者说接收方暂时无法接收数据、网络拥塞了啥的,它就暂时不发送数据块;要么就是应用程序发送过来的数据块太大了,TCP就把这些数据块划分称短一些的数据块在传送
所以,以上。关于TCP就有几个要注意的重要问题——流量控制和拥塞控制,就是说到底什么时候把数据块发送出去,还有就是要怎么发送、发送的时候要发送多大的数据块。
7、TCP是面向连接的,这个特性很重要。TCP把连接作为最基本的抽象。TCP的连接端点叫做套接字 套接字socket=(IP地址:端口号)
四个参数维持一个逻辑连接:每一条TCP连接唯一地被通信两端的两个端口(即两个套接字)所确定—— TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}
可靠传输的原理
8、什么是可靠传输?该做些什么事?
当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到数据时,及时告知发送方让发送方适当降低发送数据的速度。下面的协议就是用来达到这个目的的。
9、TCP下层是IP层,IP层只提供尽最大努力服务,可以说TCP下面的网络所提供的是不可靠的传输——下层不可靠,上层来补足
运输层传送的协议数据单元叫做报文段,网络层传送的数据单元叫做IP数据报
停止等待协议【其实实际应用中传输层也并不用这个协议】
10、停止等待?每发送一个分组就停止发送,等待对方确认。在收到确认后再发送下一个分组。 所以该怎么做?怎么知道要停止等待
11、超时重传:发送方只要超过了一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面发送的分组。【回答什么时候重传的问题】这里有一个“一段时间”,所以需要一个超时计时器,还有就是发送方要暂时保留已发送的分组的副本【不然怎么知道要重传哪些数据】,对于发送的分组要进行编号
12、超时的情况。
①出现差错:发送方发送数据的过程中出现差错,导致接收方没有接收到数据
②确认丢失:接收方返回确认的过程中出现差错,导致发送方没有接收到接收方发送的确认。接收方接收到新的重传的数据之后,先把新接收到的重复(根据分组的编号知道重复了)分组丢弃,之后向发送方再次发送确认。
③确认迟到:接收方返回确认报文很久之后才被发送方接收到,所以发送方就为超时重传,也就是说再发送了这个分组,但是之前的分组的确认报文在一段时间后还是发送到了接收方那里,这个时候接收方的做法就是收下这个迟到的确认然后啥也不做
13、滑动窗口——>提高信道利用率
14、TCP首部的字段要理解
①序号syn:本报文段所发送的数据的第一个字节的序号
②确认号ack:期望收到对方下一个报文段的第一个数据字节的序号。ack=N表明:到序号N-1为止的所有数据都已经正确收到
③RST复位:当RST=1时,表明TCP连接中出现严重差错(主机奔溃啥的),之后必须暴力断开连接,然后再重新建立运输连接。RST还可以用来拒绝非法报文或拒绝打开一个连接。
④窗口值:(接收方)告诉对方,从本报文段首部的确认号算起,接收方目前允许对方发送的数据量。明确之处了现在允许对方发送的数据量。窗口值是经常动态变化的。
⑤TCP检验和:检验首部+数据
15、MSS:最大报文段,指灭一个TCP报文段中数据字段的最大长度。数据字段加上TCP首部才是一个TCP报文段。MSS=TCP报文段长度-TCP首部长度。
16、为什么要设置MSS?都是为了效率、利用率
①关于网络利用率——IP数据报=IP首部(20字节)+TCP首部(至少20字节)+TCP数据报。若选择一个很小的TCP数据报,比如只有1字节,那整个IP数据报就只有41字节,最后传输的网络利用率最大也就1/41,很低很低了。
②如果传输的TCP报文太大,那在IP层传输的时候就有可能需要将这些报文分解为比较短的报文段了,这又需要多余的时间了,而且风险也会增大,分成比较多的报文段的话就需要分段传输,这样出错的话又要进行重传,开销无形中又变大了。
③总的来说,MSS应该尽可能大些
可靠传输的实现
17、