TCP/IP协议栈模型分析

        标准TCP/IP协议是用于计算机通信的一组协议,通常被称为TCP/IP协议栈,以它为基础组建的互联网是目前国际上规模最大的计算机网络。正因为互联网的广泛应用,使得TCP/IP成为了事实上的网络标准。

2、OSI七层模型与TCP/IP协议模型对应关系。

什么是TCP/IP:

        TCP/IP是一套用于网络通信的协议集合或者系统。TCP/IP协议模型就有OSI模型分为7层。但其实一般我们所谈到的都是四层的TCP/IP协议栈。

OSI七层模型

        OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。

OSI模型VSTCP/IP模型

数据解封装过程

3、各个层对应协议有哪些?

应用层:

        应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。

应用层的PDU被称为Data(数据)。

应用层

(Data)

HTTP 80(TCP)

超文本传输协议,提供浏览网页服务

Telnet 23(TCP)

远程登录协议,提供远程管理服务

FTP 20、21(TCP)

文件传输协议,提供互联网文件资源共享服务

SMTP 25(TCP)

简单邮件传输协议,提供互联网电子邮件服务

TFTP 69(UDP)

简单文件传输协议,提供简单的文件传输服务

传输层:

TCP:一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义。

UDP:一种简单的无连接的传输层协议,由IETF的RFC 768定义。

网络层:

        传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。

        网络层的PDU被称为Packet(包)。

网络层也叫Internet层,负责将分组报文从源主机发送到目的主机。

网络层作用:

  • 为网络中的设备提供逻辑地址;
  • 负责数据包的寻径和转发;
  • 常见协议如IPV4、IPV6、ICMP、IGMP等。

数据链路层:

        数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。

        以太网(Ethernet)是最常见的数据链路层协议。

数据链路层位于网络层和物理层之间:

  • 数据链路层向网络层提供“段内通信”;
  • 负责组帧、物理编址、差错控制等功能;
  • 常见的数据链路层协议有:以太网、PPPoE、PPP等。

物理层:

        数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。

        物理层的PDU被称为比特流(Bitstream)。

物理层位于模型的最底层:

  • 负责比特流在介质上的传输;
  • 规范了线缆、针脚、电压、接口等物理特性规范;
  • 常见的传输介质有:双绞线、光纤、电磁波等。

4、TCP/UDP协议的区别及应用场景?

区别:

1、TCP是面向连接的,UDP是面向无连接的;

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按需到达;UDP尽最大努力交付,即不保证可靠交付。TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

  • TCP保证数据正确性,UDP可能丢包
  • TCP保证数据顺序,UDP不保证

3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

  • TCP数据传输慢,UDP数据传输快

4、每一条TCP连接只能是点到点的;UDP支持一对一一对多多对一多对多的交互通信。

5、TCP对系统资源要求较,UDP对系统资源要求较

6、TCP是面向字节流的,UDP是基于数据报的。

应用场景

UDP的主要应用场景:

  1. 需要资源少,网络情况稳定的内网,或者对于丢包不敏感的应用,比如 DHCP 就是基于 UDP 协议的。
  2. 不需要一对一沟通,建立连接,而是可以广播的应用。因为它不面向连接,所以可以做到一对多,承担广播或者多播的协议。
  3. 需要处理速度快,可以容忍丢包,但是即使网络拥塞,也毫不退缩,一往无前的时候。

基于UDP的几个例子

  1. 直播。直播对实时性的要求比较高,宁可丢包,也不要卡顿的,所以很多直播应用都基于 UDP 实现了自己的视频传输协议
  2. 实时游戏。游戏的特点也是实时性比较高,在这种情况下,采用自定义的可靠的 UDP 协议,自定义重传策略,能够把产生的延迟降到最低,减少网络问题对游戏造成的影响
  3. 物联网。一方面,物联网领域中断资源少,很可能知识个很小的嵌入式系统,而维护 TCP 协议的代价太大了;另一方面,物联网对实时性的要求也特别高。比如 Google 旗下的 Nest 简历 Thread Group,推出了物联网通信协议 Thread,就是基于 UDP 协议的
  4. 许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。
  5. 视频聊天

TCP的主要应用场景

  1. 适用于对数据传输可靠性要求比较高的场景,例如文本传输。
  2. 互联网和企业网上客户端应用,数据传输性能让位于数据传输的完整性,可控制性和可靠性。
  3. 发消息的场景以及文件传输,要确保发送的消息不丢失。

5、TCP/UDP协议簇都包含哪些协议?

运行于TCP协议之上的协议:

  1. HTTP协议:超文本传输协议,用于普通浏览
  2. HTTPS协议:安全超文本传输协议,身披SSL外衣的HTTP协议
  3. FTP协议:文件传输协议,用于文件传输
  4. POP3协议:邮局协议,收邮件使用
  5. SMTP协议:简单邮件传输协议,用来发送电子邮件
  6. Telent协议:远程登陆协议,通过一个终端登陆到网络
  7. SSH协议:安全外壳协议,用于加密安全登陆,替代安全性差的Telent协议

运行于UDP协议之上的协议:

  1. DHCP协议:动态主机配置协议,动态配置IP地址
  2. NTP协议:网络时间协议,用于网络时间同步
  3. BOOTP协议:引导程序协议,DHCP协议的前身,用于无盘工作站从中心服务器上获取IP地址

6、知名协议所对应的端口号?

         数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。这个问题也就是我们常用的协议的端口号,主要有下面中几种

  • SSH服务 端口号22
  • FTP服务 端口号20 和 21
  • Telnet服务 端口号23
  • SMTP服务 端口号25
  • TFTP服务 端口号69
  • HTTP服务 端口号80
  • HTTPS加密的超文本传输服务 端口号443
  • SNMP服务 端口号161

搭建一个简单和拓朴图来简单抓包分析一下:

将IP地址配置如下:

将WEB服务器HTTP服务打开

 然后我们去用客户端访问服务器

 在访问之前我们把抓包软件打开,在e0/0/2接口抓包

猜你喜欢

转载自blog.csdn.net/zhao__b/article/details/122045247
今日推荐