【TCP/IP】浅析TCP/IP协议栈及每层含义

理解TCP和UDP

TCP/IP 协议栈

1.链路层

2.IP层

3.TCP/UDP层

4.应用层


理解TCP和UDP

        根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字UDP套接字。因为TCP套接字面向连接,因此也称为基于流(stream)的套接字

        TCP是Transmission Control Protocol (传输控制协议)的简写,意为"对数据传输过程的控制" 

TCP/IP 协议栈

        如下图所示,TCP所属的TCP/IP协议栈(Stack,层)。

        TCP/IP协议栈共分为4层。可以理解成数据收发分成了4个层次化过程。

        TCP套接字收发数据时按照以下顺序(深色画出)

        反之,通过UDP套接字收发数据时,通过以下流程完成

补充:数据通信中使用的协议栈(OSI)分为7层,上述所讲到的是TCP/IP模型(4层)。

        1.链路层

        链路层是物理链接领域标准化的结果,也是最基本的领域,专门定义LAN、WAN、MAN等网络标准。若两台主机通过网络进行数据交换,则需图中所示的物理连接,链路层就负责这些标准。

        2.IP层

        IP层设计的目的是为解决目标传输数据需要经过哪些路径。

        IP层采用的是面向消息的、不可靠的协议。在传输数据时会帮我们选择路径。若传输过程中发生路径错误,则会选择其他路径;但如果发生数据丢失或错误,则无法解决。换言之,IP协议无法应对数据错误

        3.TCP/UDP层

        IP层主要解决数据传输中的路径选择问题。TCP和UDP层以IP层提供的路径信息为基础完成实际的数据传输,因此该层又称为传输层(Transport)。

        有一个疑问,TCP可以保证可靠的数据传输,但它发送数据时以IP层为基础,该如何理解两者关系呢?

        IP层在传输多个数据包时,由于每个数据包都由IP层控制的,但缺少对应机制来调控数据包的发送时机,因此在传输顺序上是不可靠的。若只利用IP层传输数据,则可能导致数据包的顺序错乱(数据包B比先发的数据包A早到目标地址)、丢包(A、C包收到了但没有收到B包)、损坏(数据包A在接收时缺少了数据)。

        此时,我们引入TCP协议。在数据交换过程中可以确认对方已收到的数据,并重传丢失的数据,使整个通信过程变为可靠。

        4.应用层

        支持运行于不同计算机上的进程进行通信,而这些进程则是为用户完成不同任务而设计的。

这篇文章主要是为实现TCP服务器端/客户端做知识铺垫哟~

想对TCP/IP模型进一步的加深理解,可以参阅这篇文章:深入浅出TCP/IP的四层结构及相互之间的内在联系

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

干吃咖啡豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值