• TCP/IP详解读书笔记:概述


    分层

    分层是一种很通用的架构模式。通过分层,可以把一个系统分解成多个层,每个层专注于各自的功能,并提供接口给上面的层调用。上面的层不需要了解调用层的详细实现,只依赖于其接口,这就给维护带来了很大的好处,比如可以很方便的替换某一层。

    网络协议也是分层实现的。比如TCP/IP协议,是一组不同层次上的多个协议的组合。一般分为四层。

    1)链路层:也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和对应的网络接口卡。有ARP和RARP协议。

    2)网络层:处理分组在网络中的活动,包括IP协议,ICMP协议及IGMP协议。

    3) 运输层:主要为两台主机上的应用程序提供端到端的通信。主要有TCP和UDP两个传输协议。TCP为两台主机提供高可靠性的数据通信。UDP只是发送数据包,不保证是否到达另一端,因此可靠性由应用层来提供。

    4)应用层:负责处理特定的应用程序细节。

    一般来说,应用层运行在用户进程,其余三层运行于内核中,但这不是必须的。

    网络接口层处理通信媒介的细节,应用层处理某个特定的应用程序,运输层和网络层区别不太明显,那为什么要分两层?简单的说,从分层的角度看,还是因为两层的功能不一样。网络层提供的是一种不可靠的服务,它只是尽可能快地把分组从源发送到目的地。TCP在不可靠的IP层上提供了可靠的运输层,它提供了超时重传,发送和接收端到端的确认分组机制等。那UDP呢?

    互联网的地址

    每个接口必须有一个唯一的地址。下图是五类互联网地址。

    网络地址有三类,单播地址(目的为单个主机),广播地址(目的为给定网络上的所有主机)以及多播地址(同一组内的所有主机)。

    域名系统

    在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。

    封装

    当应用程序使用TCP发送数据时,数据被送入协议栈,然后逐层通过各层直到被当作比特流送入网络,每一层对收到的数据都要增加首部信息。详细如下图:

    以太网数据帧的物理特性是其长度必须在46-1500之间。

    分用

    一张图足矣。

    唯一要指出的是ICMP和IGMP虽然在同一层,因为它们是IP的附属协议,但它们的报文是封装在IP数据报中,因此这里放在IP的上方。

    ARP和RARP同理。

    客户-服务器模型

    这里将服务分为了两种类型:重复型和并发型。重复型有排他性,同时只能为一个客户端访问。并发型在客户请求来时生成一个进程或线程进行服务。

    一般来说,TCP服务器是并发的,UDP服务器是重复的,有例外但目前还不清楚。

    端口号

    客户端不在乎端口号,因为这是临时端口号,只要在本机上唯一即可,大多数TCP/IP采用1024-5000之间的端口号。

    有一些众所周知的端口号,比如1-1023之间的端口号,提供我们很熟悉的服务。比如,21端口号提供的是FTP服务。

    应用编程接口

    使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket和TLI(运输层接口,有时称作XTI)。

  • 相关阅读:
    A program file was not specified in the launch configuration.
    Effective C++条款38: 决不要重新定义继承而来的缺省参数值
    进程控制块
    Effective C++条款37: 决不要重新定义继承而来的非虚函数
    Effective C++条款42: 明智地使用私有继承
    迭代的是人,递归的是神(第一篇——递归调用的分析)
    Effective C++条款36: 区分接口继承和实现继承
    进程上下文
    进程的层次结构 ——进程组捕捉信号
    SQL语句的并集UNION,交集JOIN(内连接,外连接),交叉连接(CROSS JOIN笛卡尔积),差集(NOT IN)
  • 原文地址:https://www.cnblogs.com/fxb248/p/4182913.html
Copyright © 2020-2023  润新知