第2章 TCP-IP的工作方式

TCP/IP协议系统

为了实现TCP的功能,TCP/IP的创建者使用了模块化的设计。TCP/IP协议系统被分为不同的组件,每个组件分别负责通信过程的一个步骤。这种模块化的好处在于让厂商方便地根据特定硬件和操作系统对协议软件进行修改。这样厂商在使用光纤网络时就不必重新构建一个全新的TCP/IP,只要修改其中的某一层就好。

TCP/IP模型

graph TD
应用层-->传输层
传输层-->网际层
网际层-->网络访问层
  • 网络访问层:提供了与物理网络连接的接口。针对传输介质设置数据的格式,根据硬件的物理地址实现数据的寻址,对数据在物理网络中的传递提供错误控制
  • 网际层:提供独立于硬件的逻辑寻址,从而让数据能够在具有不同物理结构的子网之间传递。提供路由功能来降低流量,支持网间的数据传递(网间是指多个局域网互相连接而形成的较大网络,比如大公司里的网络或Internet)。实现物理地址与逻辑地址的转换。
  • 传输层:为网络提供了流量控制、错误控制和确认服务。充当网络应用程序的接口
  • 应用层:为网络排错、文件传输、远程控制和Internet操作提供了应用程序,还支持api,从而使得针对特定操作系统编写的程序能够访问网络

当TCP/IP协议软件准备通过网络传递数据时,发送端计算机上的每一层协议都在数据上添加层信息,对应于接收端计算机上相应的层。例如:发送端计算机的网际层会向数据添加报头信息,这个过程有时也被称为封装。在接收端,当数据在协议栈里传递时,这些报头信息被逐步去除。

OSI模型

出现缘由:网络业界针对网络协议体系有一个标准的七层模型,称为“开放系统互连(OSI)”模型,这是ISO(国际标准化组织)为了标准化网络协议系统所做出的规范,目的在于提高网络互联性,并且方便软件开发人员以一种开放的方式来使用协议标准。

OSI把网络访问层的功能划分为数据链路层和物理层,将应用层划分为应用层、表示层、会话层。

graph TD

应用层-->表示层
表示层-->会话层
会话层-->传输层
传输层-->网络层
网络层-->数据链路层
数据链路层-->物理层

各层级的具体作用:

  • 物理层: 把数据转换为传输介质上的电子流或模拟脉冲,并且监视数据的传输
  • 数据链路层:提供与网络适配器相连的接口,维护子网的逻辑链接
  • 网络层:支持逻辑寻址与路由选择
  • 传输层:为网络提供错误控制和数据流控制
  • 会话层:在计算机的通信应用程序之间建立会话
  • 表示层:把数据转换为标准格式,管理数据加密与压缩。
  • 应用层:为应用程序提供网络接口,支持文件传输、通信等功能的网络应用

数据包

在数据发送过程中,其流程是从堆栈的上到下,每一层都把相关信息(称为报头)捆绑到实际的数据上。包含报头信息和数据的数据包就作为下一层的数据,再次被添加报头信息和重新打包。接受过程是恰恰相反的,在数据从下到上经过协议栈的过程中,每一层都解开相应的报头,比如:接收端计算机上的网际层会使用网际层的头信息,传输层会使用传输层的报头信息。

数据包在每一层具有不同的形式和名称。

  • 在应用层生成的数据包称为消息。
  • 在传输层生成的数据包封装了应用层的消息,如果它来自于传输层的TCP协议,就称为分段;如果来自于传输层的UDP协议,就被称为数据报
  • 网际层的数据包封装了传输层的片段,被称为数据报
  • 网络访问层的数据包封装了数据报,被称为帧。帧被访问层的最低子层转化为比特流

基本的TCP/IP协议联网系统

  1. 数据从工作于应用层的协议、网络服务或应用编程接口通过TCP或UDP端口传递到两个传输层协议(TCP或UDP)中的一个。程序可以根据需要通过TCP或UDP访问网络

    • TCP是面向连接的协议。面向连接的协议提供更复杂的流量控制和错误控制。TCP能够确保数据的发送质量,比UDP更可靠,但由于需要进行额外的错误检测和流量控制,因此比UDP的速度慢
    • UDP是个无连接的协议,比TCP快,但是不可靠,它把错误控制的责任推给了应用。
  2. 数据分段传递到网际层,IP协议在此提供逻辑寻址信息,并且把数据封装为数据报。
  3. IP数据报进入网络访问层,传递到与物理网络相连接的软件组件。网络访问层创建一个或多个数据帧,从而进去物理网络。在像以太网这样的局域网系统中,帧可能包含获得的物理地址信息。而这些是由网际层的ARP维护
  4. 数据帧被转化为比特流,通过网络介质进行传输

第2章 TCP-IP的工作方式的更多相关文章

  1. TCP/IP解析(一):TCP/IP的工作方式

    本文包括下面内容: 1.TCP/IP协议系统 2.OSI模型 3.数据包 4.TCP/IP的交互方式 1.TCP/IP模型的协议层 分为四层: 网络訪问层:提供与物理网络连接的接口.依据硬件的物理地址 ...

  2. 第4章 TCP/IP通信案例:访问Internet上的Web服务器

    第4章 TCP/IP通信案例:访问Internet上的Web服务器 4.2 部署代理服务器 书中为了演示访问Internet上的Web服务器的全过程,使用了squid代理服务器程序模拟了一个代理服务器 ...

  3. 第二章 TCP/IP 基础知识

    第二章 TCP/IP 基础知识   TCP/IP  transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的.   ...

  4. 第6章 TCP/IP路由协议故障处理

    第6章 TCP/IP路由协议故障处理 一.缺省网关 当包的目的地址不在路由器的路由表中,如路由器配置了缺省网关,则转发到缺省网关,否则就丢弃. Show ip route :查看Cisco路由器的缺省 ...

  5. TCP/IP协议工作原理简述

    TCP/IP协议工作原理简述 // */ // ]]>   TCP/IP协议工作原理简述 Table of Contents 1 概要 2 应用层 3 传输层 4 网络层 5 链路层 1 概要 ...

  6. 第一天开通博客,就粗略写一下刚了解TCP/IP协议工作过程

    Tcp/Ip协议分为四层:底层到高层顺序 链路层(硬件,网卡这些) 网络层(选择一条传输路径,如何从一台计算机请求另一条计算机) 传输层(遵循TCP(传输控制协议),UDP(用户数距协议)这些协议) ...

  7. HCIA SWITCHING&ROUTTING 笔记——第一章 TCP/IP基础知识(1)

    视频地址:https://ilearningx.huawei.com/courses/course-v1:HuaweiX+EBGTC00000336+Self-paced/courseware/abb ...

  8. 第三章 TCP/IP 模型

    一.产生背景 1.伴随着计算机网络的飞跃发展,各大厂商根据自己的协议生产出了不同的硬件和软件 2.为了实现网络设备间的互相通讯,ISO和IEEE相继提出了OSI参考模型及其TCP/IP模型 二.TCP ...

  9. CCNA第二章TCP/IP简介考试要点学习笔记

    1.描述网络是如何工作的     DoD过程/应用层 -- OSI应用.表示和会话层(定义了结点到结点的应用通信协议以及对用户界面规范的控制): DoD主机到主机层 -- OSI传输层(保证了数据包的 ...

  10. HCIA SWITCHING&ROUTTING 笔记——第一章 TCP/IP基础知识(2)

    视频地址:https://ilearningx.huawei.com/courses/course-v1:HuaweiX+EBGTC00000336+Self-paced/courseware/abb ...

随机推荐

  1. Learning Python 007 基本语句

    Python 基本语句 if - 条件判断 没有什么好说的,直接上代码: age = 3 if age >= 18: print('adult') elif age >= 6: print ...

  2. R: factor & list 生成和操作因子、列表

    ################################################### 问题:生成.操作列表 & 因子   18.4.27 怎么生成列表 list.因子 fac ...

  3. 3. XML实体注入漏洞的利用与学习

    XML实体注入漏洞的利用与学习 前言 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数据进行处理时引发 ...

  4. HDU 3966 Aragorn's Story (简单树链剖分)

    题意:给一棵树,并给定各个点权的值,然后有3种操作: I C1 C2 K: 把C1与C2的路径上的所有点权值加上K D C1 C2 K:把C1与C2的路径上的所有点权值减去K Q C:查询节点编号为C ...

  5. jqGrid 跨页选择以及回显的处理

    思路:定义全局的array(selectedIds),当列表选中的时候就push进去,当列表取消选中时,将该项从selectedIds中删除 重点:1.列表加载完成时为列表增加复选框,并给每一个che ...

  6. Fetch超时设置和终止请求

    1.基本使用 Fetch 是一个新的端获取资源的接口,用于替换笨重繁琐XMLHttpRequest.它有了Request 和 Response 以及Headers对象的概念,与后端语言请求资源更接近. ...

  7. .frm和.ibd恢复数据

    昨日晚上开发告诉我不小心truncate两个表的数据,要求还原.结果在阿里云上找到了备份内容,结果是物理备份文件.frm..ibd.心中一万个草泥马啊..没办法,开始还原吧. 1.查看测试机Mysql ...

  8. 51nod1315(位运算)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1315 题意:中文题诶- 思路:位或(|)运算是二进制位有一个 ...

  9. [Xcode 实际操作]四、常用控件-(16)为MKMapView指定地理坐标

    目录:[Swift]Xcode实际操作 本文将演示如何自定义地图视图的的地理坐标 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先 ...

  10. oracle函数获取汉字拼音的首字母

    CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE V ...