TCP、IP协议问题
tcp协议头结构
tcp报头一共20个字节。每行4个,所以一共5行。每行4个字节,就是4*8=32个位。
第四行那些字母叫做标志位,6个标志位。
udp协议头结构
没找到合适的图,分为三行
第一行:16位源端口号,16位目的端口号
第二行:16位用户数据包长度,16位校验和
第三行:数据。
tcp,udp区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制???因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
tcp如何保证可靠传输
1.应用数据被分割成TCP认为最适合发送的数据块,TCP能将数据截断为合理的长度。
2.当TCP发出一个段后,它会启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到确认就重发这个报文段,超时重发。
3.当TCP端收到另一个TCP端发出的一个报文段,它会发送一个确认,对于收到的请求,给予确认响应。
4.TCP会检测收到报文段的头部和数据的校验和,如果不对,TCP将丢弃这个报文段并且不发送确认。
5.TCP会对失序的数据进行重新排序再提交给应用层。
6.TCP会丢弃重复的数据。
7.TCP每一端都有固定大小的缓冲区,进行流量控制,防止较快主机使较慢主机的缓冲区溢出。
网络的七层结构
OSI模型:物理层,数据链路层,网络层(ip),传输层(tcp,udp),会话层,表示层,应用层(http)。
tcp属于哪一层
ip属于哪一层