【网络】TCP/IP-传输层知识概要
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【网络】TCP/IP-传输层知识概要相关的知识,希望对你有一定的参考价值。
参考技术A 首先确定下传输层的作用例子:
.在OSI参考模型中,自下而上第一个提供端到端服务的层次是 传输层
解析
传输层,传输层的是作用是负责为两台主机中应用进程之间的通信提供服务,而对于网络层来说,提供的是主机到主机之间的通信,所谓的端到端是指应用进程到应用进程。
SYN(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
在第一次发送信息中,A随机选取一个序列号x作为初始化序列号发送给B。
第二次B使用ack对A的数据报进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时发送自己的初始化序列号seq=y
TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。
如下图所示,IP 地址在IP 数据报的首部,而硬件地址则放在MAC 帧的首部。在网络层以上使用的是IP 地址,而链路层及以下使用的是硬件地址。
TCP的连接端点称为 套接字(socket),根据TCP协议的规定,端口号拼接到IP地址即构成了套接字。
也就是说TCP连接的端点不是主机,不是IP不是应用进程,而是套接字。
套接字 socket = (IP地址:端口号)
套接字 socket = (IP地址: 端口号)
TCP 连接 ::= socket1, socket2 = (IP1: port1), (IP2: port2)
Socket连接是一个五元组,包括协议类型,源IP,源端口,目标地址和目标端口
TCP是面向字节流的,每一个字节对应一个序列号。
TCP每次发送的报文段的首部中的序列号是该报文段的第一个字节的序号。
接收端返回的确认号是收到数据的最高序号加1
一个 TCP报文段的数据部分最多是
IP数据报 的最大长度=2^16-1=65535(字节)
TCP报文段的数据部分= IP数据报 的最大长度- IP数据报 的首部-TCP报文段的首部=65535-20-20=65495(字节)
在IP 层抽象的互连网上,我们看到的只是IP 数据报,路由器根据目的站的 IP地址进行选路。在具体的物理网络的链路层,我们看到的只是 MAC 帧,IP 数据报被封装在 MAC帧里面。
MAC 帧在不同的网络上传送时,其MAC 帧的首部是不同的。这种变化,在上面的IP 层上是看不到的。每个路由器都有IP 地址和硬件地址。使用IP 地址与硬件地址,尽管连接在一起的网络的硬件地址体系各不相同,但 IP层抽象的互连网却屏蔽了下层这些很复杂的细节,并使我们能够使用统一的、抽象的IP 地址进行通信。
当某个路由器发现一数据报的检验和有差错时,会直接丢弃。
思考
如何理解TCP/IP 协议本是为非实时数据业务而设计的
例:为什么在 TCP 首部中有一个首部长度字段,而 UDP 的首部中就没有这个字段?
答:这是TCP 与UDP 包的区别,TCP 包的首部字段可以更好的保证数据传输的可靠安全,而UDP 就不能保证,所以UDP 比TCP 快,不间断但是不可靠,例如QQ 视频就是使用UDP,经常出现人不动,就是这个原因
分组交换根据其通信子网向端点系统提供的服务,还可以进一步分为面向连接的虚电路方式和无连接的数据报方式。这两种服务方式都由网络层提供。
虚电路在发送方和接受方会建立一条逻辑上的连接,并不是一条真正的物理连接。
电路交换的电话通信是先建立一条真正的物理连接,因此分组交换的虚电路和电路交换的连接只是类似,并不完成一样。
1 数据报服务发送分组前不需要建立连接
2 虚电路网络中的每个结点上都维持一张虚电路表,它的每一项记录了一个打开的虚电路的信息,包括在接受链路和发送链路的虚电路号,前一结点和下一结点的标识。
关于拥塞上一张脑图
发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求 > 可用资源。作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制要做的都有一个前提:就是网络能够承受现有的网络负荷。
对比流量控制:拥塞控制是一个全局的过程,涉及到所有的主机、路由器、以及降低网络相关的所有因素。流量控制往往指点对点通信量的控制,是端对端的问题。流量控制只关心发送方和接收方点对点的发送量。它的任务是处理发送能力大于接受能力。
网络中存在太多的数据包,导致数据包被延迟和丢失,从而降低传输性能,这种情况称为拥塞。网络层和传输层共同承担着处理拥塞的责任。
TCP连接的每一端都必须设有两个窗口,一个发送窗口,一个接收端口。
TCP可靠传输机制用字节的序号进行控制。TCP所有的确认基于序号还不是基于报文。TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。TCP协议用于控制数据段是否需要重传的依据是设立 重传定时器。
保护数据不受主动攻击(数据的伪造和变动)的措施称为报文认证技术。
自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中运输层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等。
TCP协议用于控制数据段是否需要重传的依据是设立 重发定时器
TCP/IP网络知识
1.TCP/IP概念
TCP/IP不是单指一种传输协议,而是一组传输控制协议/互联网协议。
2.TCP/IP分层
(计算机网络中,实际应用的网络协议是TCP/IP协议族,TCP/IP的应用层大体上对应着OSl/RM模型的应用层、表示层和会话层,TCP/IP的网络接口层对应着OSI/RM的数据链路层和物理层,而传输层和网络层在两个模型中对应得很好。)
其分层关系如下图
3.TCP/IP特性
面向连接的,可靠的,基于字节流的传输层通信协议;
网络地址统一分配,网络中每一设备和终端都具有一个唯一地址;
TCP/IP不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准等。
4.TCP三次握手和四次挥手
TCP报文段首部包含:
序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号
确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号
确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效
同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0
终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接
TCP三次握手:
1.客户端向客户端发出请求报文段。(SYN=1,seq=x)
2.服务端若同意客户端的请求,则发回确认报文。(SYN=1,ACK=1,ack=x+1,seq=y)
3.客户端收到确认报文之后,通知上层应用进程连接已建立,并向服务器发出确认报文,其首部:ACK=1,ack=y+1。当服务器收到客户端的确认报文之后,也通知其上层应用进程连接已建立。(ACK=1,ack=y+1)
TCP四次挥手:
1.数据传输结束以后,客户端的应用进程发出连接释放报文段,并停止发送数据。(FIN=1,seq=u)
2.服务器端收到连接释放报文段之后,发出确认报文。(ack=u+1,seq=v)
3.若服务器已经没有要向客户端发送的数据,其应用进程就通知服务器释放TCP连接。(FIN=1,ACK=1,seq=w,ack=u+1)
4.客户端收到连接释放报文段之后,必须发出确认释放请求,然后TCP连接才真正结束。(ACK=1,seq=u+1,ack=w+1)
5.UDP特点及报文结构
特点:
面向非连接,不维护连接状态,可以同时向多个客户端传输相同的消息
数据包报头只有8个字节,额外开销小
吞吐量只受限于数据生成速率,传输速率以及机器性能等
报文结构:
6.HTTP协议
简介:
HTTP协议是应用层的超文本传输协议,是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
特点:
支持客户/服务器模式
简单快速且灵活
无连接(无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间)
无状态
消息结构:
客户端请求消息:(包含请求行,请求头部,空行,请求数据)
服务端响应消息:(包含状态行,消息报头,空行,响应正文)
更多相关知识可以查看上一篇博客:https://www.cnblogs.com/ywb-articles/p/10633270.html
以上是关于【网络】TCP/IP-传输层知识概要的主要内容,如果未能解决你的问题,请参考以下文章