TCP/IP协议族

TCP/IP协议族

一系列协议组成的一个网络分层模型

分层

分层原因

网络的不稳定性

具体分层
应用层

决定了向用户提供应用服务时通信的活动,如HTTP、FTP(文件传输协议)、DNS(域名系统)

传输层

对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP和UDP

TCP和UDP区别

  1. 连接
    TCP是面向连接的,传输数据前要先建立连接
    UDP是不需要连接,即刻传输数据。

  2. 连接个数
    TCP是一对一的两点服务
    UDP支持一对一、一对多、多对多的交互通信

  3. 可靠性
    TCP是可靠交付数据,数据可以无差错、不丢失
    UDP不可靠传输,尽量最大努力交付

  4. 拥塞控制、流量控制
    TCP有拥塞控制、流量控制机制,保证数据传输的安全性。
    UDP则没有,即使网络非常拥堵了,也不会影响UDP的发送速率

  5. 首部开销
    TCP首部长度最小20个字节,最大60个字节
    UDP首部只有8个字节,并且是固定不变的

  6. 传输方式
    TCP面向字节流
    UDP面向报文

  7. 使用场景
    TCP适用于要求可靠传输的应用,例如文件传输
    UDP适用于实时应用(IP电话、视频会议、直播)

拥塞控制防止数据过多注入到网络中导致网络资源(路由器、交换机等)过载。
TCP拥塞控制默认认为网络丢包是由于网络拥塞导致的,所以一般的TCP拥塞控制算法以丢包为网络进入拥塞状态的信号。对于丢包有两种判定方式,一种是超时重传RTO[Retransmission Timeout]超时,另一个是收到三个重复确认ACK。

流量控制是接收方通过TCP头窗口字段告知发送方本方可接收的最大数据量,用以解决发送速率过快导致接收方不能接收的问题。所以流量控制是点对点控制

网络层

用来处理在网络上流动的数据包。
数据包是网络传输的最小数据单位。
该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传给对方

TCP和UDP是并行的,为了对他们有一个共同的支持,所以分出网络层

链路层

用来处理连接网络的硬件部分

TCP连接

什么叫做连接

通信双方建立确认「可以通信」,不会将对方的消息丢弃,即为建立连接

TCP连接的建立与关闭
建立连接
  1. 客户端:「我要向你发送消息」
  2. 服务器:「好的。我要向你发送消息」
  3. 客户端:「好的

发送端首先发送一个带SYN标志的数据包给对方
接收端接收到后回传一个带有SYN/ACK标志的数据包以示传达确认信息
最后发送端再回传一个带ACK标志的数据包

关闭连接
  1. 客户端:「我不再给你发送消息」
  2. 服务端:「好的」
  3. 服务端:「我不再给你发送消息」
  4. 客户端:「好的」

为什么 TCP 连接在断开时是四次挥手而不是三次?

因为在客户端停止向服务器发送消息时,也许服务器还有消息需要向客户端发送,在稍后服务器的消息发送完毕之后,才需要向客户端发送通知。

长连接

为什么需要长连接

因为移动网络并不在Internet中,而是在运营商的内网,因此并不具备真正的公网IP,因此当某个TCP连接在一段时间不通信之后,网关会处于网络性能考虑而关闭这条TCP连接和公网的连接通道,导致这个TCP端口不再能收到外部通信消息,即TCP连接被动关闭

长连接的实现方式

心跳。即在一定间隔时间内,使用TCP连接发送超短无意义消息来让网关不能将自己定义为「空闲连接」,从而防止网关将自己关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值