当前位置:   article > 正文

深入浅出TCP协议,为什么需要TCP协议?_解析ip数据包为什么定义tcp

解析ip数据包为什么定义tcp

前面我们介绍了网络层的IP协议、ICMP协议、ARP协议,后续给大家介绍下传输层的TCP和UDP协议。今天先讲讲TCP协议

 

本篇文章概要

 

 

正文

 

 

我们知道TCP是传输层协议,用于为应用层提供服务,通过端口号可以唯一标识一个应用。

 

1

什么是TCP?

 

TCP 是面向连接的,提供端到端可靠性服务的传输层协议。

 

面向连接:

 

向连接中通信中,会在在两个端点之间建立了一条可靠的数据通信信道。

 

电话就是一种面向连接的服务,双方建立连接后才能够通话,可以确保对方听到你说话;而发短信就不是一种面向连接的服务,你随时可以发送短信,但是不能确保对方及时收到。

 

端到端可靠

 

保证从发送端发送的报文都可以被目的端收到,哪怕被丢弃,也可以让发送端重传;

 

 

2

为什么需要TCP,TCP可以解决什么问题?

 

IP 层是「不可靠」的,它只负责数据包的发送,但它不保证数据包能够被接收、不保证网络包的按序交付、也不保证网络包中的数据的完整性。

 

如果需要保障网络数据包的可靠性,那么就需要由上层(传输层)的 TCP 协议来负责

 

因为 TCP 是一个工作在传输层可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。后续会讲TCP协议是如何确保数据包的可靠传输的?

 

3

TCP报文格式

我们知道待发送的数据是根据TCP/IP四层模型层层封装的,那么TCP协议是如何封装的?下面我们看下TCP的报文格式。

 

 

如图所示为TCP报文头格式。

 

TCP数据段由TCP Header(头部TCP Data(数据)组成。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节

 

 

下面我们一起看下TCP头部的各个字段:

 

1、16位源端口号:源主机的应用程序使用的端口号。

 

2、16位目的端口号:目的主机的应用程序使用的端口号。每个TCP头部都包含源和目的端的端口号,这两个值加上IP头部中的源IP地址和目的IP地址可以唯一确定一个TCP连接。

 

 

 

TCP允许一个主机同时运行多个应用进程。每台主机可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/207272
推荐阅读
相关标签
  

闽ICP备14008679号