zoukankan      html  css  js  c++  java
  • 《TCP/IP协议详解》学习笔记(一):概述

    1. 网络分层

    • TCP/IP模型层次

    clip_image002

    OSI参考模型与TCP/IP模型层次关系

    链路层:处理各种传输媒介的物理接口细节;

    网络层:处理分组在网络中的活动,提供逐跳(Hop by hop)的通信;

    运输层:为两台主机上应用程序提供端对端(End to end)的通信;

    应用层:处理特定应用程序细节。

    端系统(End system,如主机)间通信,需要应用层和运输层的端到端协议;

    而端系统与中间系统(Intermediate system,如路由器)间的通信的,则需要网络层的逐跳协议。

    网络层IP只是尽可能快地将分组从源节点送到目的节点,是不可靠的服务;

    TCP采用超时重传、发送和接收端到端确认分组等机制,在IP服务的基础上实现可靠的服务。

    clip_image002[5]

    TCP/IP协议族间不同层次协议的通信

    • 连接网络的方法

    路由器具有两个以上的网络接口层,称之为多接口(Multihomed),是在网络层对网络进行互连,功能为单纯把分组从一个接口传递到另外一个接口;

    网桥是链路层上对网络进行互连;

    TCP/IP更倾向于使用路由器而非网桥连接网络。

    2. 数据的封装与分用

    • 数据的封装

    应用程序往TCP传输数据时,数据被送入协议栈,然后逐层通过,每层在收到的数据上添加该层的首部信息。

    TCP层 --> IP层:TCP报文段、TCP段(TCP segment);

    IP层 --> 链路层:IP数据报(IP datagram)。关于IP层到链路层间数据传输的单元,更准确的说法应该是分组(packet)。分组既可以是IP数据报,也可以是IP数据报的一个片(fragment)。

    以太网数据帧(即IP数据报部分)的物理特征是长度必须介于46 ~ 1500字节间。

    clip_image002[9]

    数据进入协议栈的封装过程

    运输层协议在生成报文首部时需要传入一个应用程序的标示符,TCP和UDP都使用一个16bit的端口号来标识不同的应用程序。TCP和UDP的首部都包含源端口号和目标端口号;

    IP首部中有一个长度为8bit的协议域,用于标识数据所属协议,1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议;

    以太网帧首部中含有16bit的帧类型域,其中以某种形式标识生成数据的网络协议。

    • 以太网帧的分用

    每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议,该过程叫分用(Demultiplexing)。

    clip_image002[11]

    以太网数据帧分用的过程

    3. 杂项

    • 互联网地址

    网络地址由网络号与主机号组成;

    五类地址分类:

    类别

    IP地址组成

    范围

    A类

    0

    网络号7位

    主机号24位

    0.0.0.0 ~ 127.255.255.255

    B类

    1

    0

    网络号14位

    主机号16位

    128.0.0.0 ~ 191.255.255.255

    C类

    1

    1

    0

    网络号21位

    主机号8位

    192.0.0.0 ~ 223.255.255.255

    D类

    1

    1

    1

    0

    多播组号28位

    224.0.0.0 ~ 239.255.255.255

    E类

    1

    1

    1

    1

    0

    后备使用27位

    240.0.0.0 ~ 255.255.255.255

    三类IP地址:

    单播地址(目的端为单个主机);

    广播地址(目的端为给定网络上的所有主机);

    多播地址(目的端为同一组内所有主机)。

    • 域名系统

    域名系统是一个分布的数据库,提供IP地址和主机名间的映射信息。

    • 客户--服务器模型

    服务器为客户提供一些特定的服务;

    服务分为:

    重复型,客户独占服务器,在处理客户请求时服务器不能为其他客户机提供服务;

    并行型,服务器启动新的服务来处理客户请求,完成后该服务将被终止。可以并发处理客户机的请求。

    • 端口号

    TCP和UDP采用16bit的端口号来识别应用程序;

    任何TCP/IP实现所提供的服务都用知名端口(1~1023),这些知名端口由IANA管理;

    Unix系统有保留端口。

    客户端端口

    客户端不关心其使用的端口号,仅需保证端口号在机器上唯一即可;

    又称为临时端口,仅在用户运行客户端程序时存在;而服务器只要开机其服务就运行;

    大多数TCP/IP实现给临时端口分配1024~5000之间的端口;大于5000的端口是为其他服务预留。

    • 标准化

    标准化过程;

    RFC;

    标准的简单服务;

    互联网;

    TCP/IP软件实现;

    TCP/IP应用编程接口:socket和TLI(Transport Layer Interface)

  • 相关阅读:
    python如何编译py文件生成pyc、pyo、pyd以及如何和C语言结合使用
    urllib.parse:很底层,但是是一个处理url路径的好模块
    pandas中的Series
    pandas中Series对象下的str所拥有的方法(df["xx"].str)
    10.集成学习与随机森林
    9.决策树
    8.支撑向量机SVM
    HTTP协议详细介绍
    mysql 总结
    MySql练习题参考答案
  • 原文地址:https://www.cnblogs.com/alonecat06/p/2863183.html
Copyright © 2011-2022 走看看