浅析TCP/IP协议

浅析TCP/IP协议

0x00 什么是TCP/IP协议?

? 想一想人与人之间交流需要什么?我们是不是要掌握一种我们都能体会到对方意思的语言。那么计算机与网络设备之间进行通信,是不是不同设备之间是不是也要确定一种让两者能够通信的方法。不同的硬件,不同的操作系统,等等不同的设备,他们想要通信,必须要有一种规则来保证它们之间能够通信。而这种规则就是协议

? 很多人都认为TCP/IP协议指的是TCP和IP这两种协议,也有人认为TCP/ IP 是在 IP 协议的通信过程中,使用到的协议族的统称。但我认为其实不是这样,因为TCP(传输控制协议)和IP(传输控制协议)都属于一个协议家族,而他们就是这个家族中最先出生的。同时也是这个协议家族的最核心的协议。所以就用TCP/IP协议来代表这个协议家族。它通称为TCP/IP协议族,简称为TCP/IP。又因为网络通讯协议采用分层的结构,各个层次配合完成工作,和计算机中的堆栈很相似,所以亦被称为TCP/IP协议栈

## 0x01 TCP/IP参考模型

? 首先来了解一下OSI模型,OSI模型(开放式系统互联模型), 是一种概念模型,由国际标准化组织提出,一个试图将世界上各种计算机互连为网络的标准框架。共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如下图所示。

?

下面来看 TCP/IP参考模型,它是一个抽象的分层模型,在这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的“层”中(分别是:应用层传输层网络互连层网络访问(链接)层)。每一抽象层创建在低一层提供的服务上,并且为高一层提供服务。 完成某些特定的任务需要众多的协议协同工作,这些协议分布在模型的不同层。 TCP/IP参考模型为TCP/IP协议栈制作。其中IP协议只关心如何使得数据能够跨越本地网络边界的问题,而不关心如何利用传输媒体,数据如何传输(当作黑盒处理)。整个TCP/IP协议栈则负责解决数据如何通过许许多多个点对点通路(一个点对点通路,也称为一“跳”, 1 hop)顺利传输,由此不同的网络成员能够在许多“跳”的基础上创建相互的数据通路。

把TCP/IP协议族中的协议对照OSI七层模型,如下图示,

?

? 而通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。 网络传输协议能够大致匹配到一些厂商喜欢使用的固定7层的OSI模型。然而这些层并非都能够很好地与基于IP的网络对应。

?

不难看出,OSI更加抽象,注重功能,而TCP/IP则更加注重与功能的实现。

0x02 TCP/IP的分层管理

把 TCP/IP 层次化是很有必要的。比如说,如果只有一个协议,当某个地方需要改变设计时,那我们就必须把所有部分替换掉。而分层之后呢,我们的协议分为几个层面,让每个层面有专门的协议去负责,这样们既可以做到详细和完整,又可减轻工作量,如我们要修改协议,我们不需要将所以的协议都改,只需要修改我们需要的部分。

TCP/IP 协议族各层的作用如下。

应用层

  • 该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。
  • 应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。
  • 数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。

TCP/IP 协议族内预存了各类通用的应用服务

在应用层上有一些特定的程序。它们提供直接支持用户应用的服务。如:HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登陆)、DNS(名称<-> IP地址寻找)等

传输层

  • 传输层(transport layer)的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。
  • 传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
  • 在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议)。
    • TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。  
    • UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。  

网络层(又名网络互连层)

  • 网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
  • 与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
  • 为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。  

 网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。 

链路层(又名数据链路层,网络接口层)

  • 网络访问(链接)层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。
  • 给其上层-网络互连层一个访问接口,以便在其上传递IP分组。
  • 用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。
  • 硬件上的范畴均在链路层的作用范围之内

0x03 参考资料

[1] TCP/IP四层模型

[2] TCP/IP协议

[3] 互联网协议套件

[4] 图解HTTP (图灵程序设计丛书) [日]上野 & 宣

原文地址:https://www.cnblogs.com/delongzhang/p/12419280.html

时间: 2024-10-30 11:23:12

浅析TCP/IP协议的相关文章

浅析TCP/IP 协议

TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族. TCP/IP协议模块关系 从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层.网络层.传输层.应用层. TCP/IP协议并不完全符合OSI的七层参考模型,OSI(Open System Interconnect)是传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务.该模型的目的是使各种硬件在相同的层次上相互通信.这7层是:物理层.数据链路层(网络接口层).

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议三次握手与四次握手流程解析

原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图 上图中有几个字段需要重点介绍下:   (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.   (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.   (3)标志位:共6个,即URG.ACK.PSH.RST

TCP/IP协议族

TCP/IP协议 TCP/IP协议栈主要分为四层:应用层.传输层.网络层.数据链路层,每层都有相应的协议,现在几乎所有的操作系统都实现了TCP/IP协议栈.如下图 上图运输层应为传输层 所谓的协议就是双方进行数据传输的一种格式.整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档.在这里只对IP.TCP.UDP协议头做一个分析. 首先来看看在网络中,一帧 以太网数据包的格式: 在Linux 操作系统中,当我们想发送数据的时候,我们只需要在上层准备好数据,然后提交给内核协议栈 , 内核协议

TCP/IP协议

为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用.只有把它们联合起来,电脑才会发挥出它最大的潜力.于是人们就想方设法的用电线把电脑连接到了一起. 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息.因而他们需要定义一些共通的东西来进行交流,TCP/IP就是

python学习笔记-Day9 (TCP/IP协议、socket)

TCP/IP协议 TCP/IP四层协议 TCP/IP概念 tcp/ip协议是主机接入互联网以及接入互联网的两台主机通信的标准. 数据帧概念 数据帧 |-- 包头 | |--源地址 | |--目标地址 | |--数据类型 | |-- 数据 socket在四层协议中的位置 socket协议的交互流程 socket初试 # 依照上socket流程图,实现一个功能,客户端输入什么,就把输入的转为大写 # soceet server import socket ip_port=('127.0.0.1',9