分层

 
        TCP/IP协议族是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层次协议系统。
 

  • 链路层(数据链路层或网络接口层):通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。用于处理与传输媒介物理接口细节。
  • 网络层:处理有关通信媒介的细节,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包含IP协议(网际协议),ICMP(Internet互联网控制报文协议,Internet Control Message Protocol),以及IGMP协议(Internet组管理协议,Internet Group Management Protocol)。
  • 运输层:为两台主机上的应用程序提供端到端的通信。包含TCP(传输控制协议,Transmission Control Protocol )和UDP(用户数据报协议,User Datagram Protocol)。
    • TCP为两台主机提供高可靠性的数据通信。它所做的工作包括将应用程序交给他的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最终确认分组的超时时钟等。(传输层提供了可靠的端到端的通信)
    • UDP则为应用层提供了一种非常简单的服务。它只把称为数据报的分组从一台主机发送到另一台主机,但不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。
  • 应用层: 负责处理特定的应用程序细节。 
    • Telnet远程登录(Telnet是常用的远程控制Web服务器的方法)
    • FTP文件传输协议
    • SMTP简单邮件传送协议
    • SNMP简单网络管理协议(simple network management protocol)
        TCP/IP协议族是一组不同的协议组合在一起构成的协议族,尽管通常称该协议为TCP/IP协议,但TCP和IP只是其中的两种协议而已。(该协议族的另一个名字为Internet协议族(Internet Protocol Suite))。如上图所示,FTP是一种应用层协议,TCP是一种运输层协议,IP是一种网络协议,而以太网协议应用于链路层。
 
        一个互连网(internet)就是一组通过相同协议族互连在一起的网络。构建互连网最简单的方法就是把两个或多个网络通过路由器进行连接。它是一种特殊的用于网络互连的硬件盒。路由器(Router)的好处是为为不同类型的物理网络提供连接:以太网、令牌环网、点对点的链接和FDDI(光纤分布式数据接口)。从历史上说,这些盒子称为网关。但现在网关这个术语只用来表示应用层网关:一个连接两种不同协议族的进程,它为特定的应用程序服务。
        对上面描述的互连网,我们可以划分出端系统(End system)(两边的主机)和中间系统( Intermediate system)(中间的路由器)。应用层和传输层使用端到端协议,只有端系统需要这两层协议。而网络层使用逐跳协议,两个端系统和中间系统都要使用它。
 
网络层和运输层的区别:
 
        网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快的把分组从源结点送到目的结点,但是并不提供任何可靠性保证。运输层TCP采用了超时重传、发送和接收端到端的确认分组机制,在不可靠的IP层上提供了一个可靠的运输层。
        从定义上看,一个路由器具有两个或两个以上网络接口层(因为它连接了两个或多个网络)。互联网的目的之一就是在应用程序中隐藏所有的物理细节。因此,通过路由器进行互连不同类型的物理网络,对应用层而言,下层细节是被隐藏的。连接网络的另一途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器是在网络层上对网络进行互连。网桥使得多个局域网(LAN)组合在一起,这样对上层来说就好像是一个局域网。

TCP/IP协议的分层

 
        上图介绍了本书将主要讨论的协议。
 

ICMP是IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息。IGMP是Internet组管理协议,它用来把一个UDP数据报多播到多个主机。(注意广播(将一个UDP数据报发送到某个指定网络上的所有主机)和多播的区别)。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

 
 

互联网的地址

 
       这里介绍IPV4版本,IP地址长度为32bit,使用常见的点分十进制表示。
       
       三类IP地址:单播地址(目的为单个主机),广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组的所有主机) ,对于子网划分及NAT技术后面讨论。
 

域名系统(DNS)

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

封装

 
        当应用程序使用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要添加一些首部信息(有的还要添加尾部信息)。TCP传给IP的数据单元称为TCP报文段或简称为TCP段(TCP segment),IP传给网络接口层的数据单元称为IP数据报(IP datagram),通过以太网传输的比特流称为帧。以太网数据帧的物理特性是其长度必须在46到15000字节之间。 
 
        UDP数据与TCP数据基本一致,唯一不同的是UDP传给IP的信息单元称为UDP数据报(UDP  datagram),而且UDP的首部长度为8字节(TCP首部为20字节)。关于每一层添加的首部信息详细解释后面介绍。
 

分用

 
        当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部,每次协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。同时为协议ICMP和IGMP定位存在着一些困难。在图1-4中,将它们与IP放在同一层上,那是因为它们是IP的附属协议。但在这里,将它们放在IP层上面,是因为ICMP和IGMP报文都被封装在IP数据报中。同时,对于ARP和RARP协议而言,将它们放在以太网设备驱动程序之上,是因为它们跟IP数据报一样,都有各自的以太网数据帧类型(通过帧首部的类型字段判断)。而在图1-4中,把ARP作为以太网设备驱动程序的一部分,放在IP层的下面,在逻辑上是合理的。
 

端口号

 
        端口号用来标识互相通信的应用程序。对于每一个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都要用知名的1~1023之间的端口号。客户端通常对它使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其他服务器预留的。

互联网

 
        internet这个词的第一个字母是否大写决定了它具有不同的含义。internet意思是一个共用的协议族把多个网络连接在一起。而Internet指的是世界范围内通过TCP/IP相互通信的所有主机集合。Internet是一个internet,而internet不等于Internet。
 

应用编程接口

 
        使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket和TLI(运输层接口:Transport Layer Interface)。

《TCP/IP详解卷一:协议》 概述的更多相关文章

  1. 『TCP/IP详解——卷一:协议』读书笔记——01

    从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...

  2. 『TCP/IP详解——卷一:协议』读书笔记——10

    2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...

  3. 【TCP/IP详解 卷一:协议】第二章:链路层

    2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...

  4. TCP/IP详解学习笔记- 概述

    TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构      网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统.      如图所 ...

  5. TCP/IP详解 卷一(第一章 概述)

    很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议族允许它们相互进行通信. 1.分层 TCP/IP不是一个协议,而是一个协议族,通常它被认为是一个四层的协议系统,下面展 ...

  6. 【TCP/IP详解 卷一:协议】TCP的小结

    前言:TCP学习的综述 在学习TCP/IP协议的大头:TCP协议 的过程中,遇到了很多机制和知识点,详解中更是用了足足8章的内容介绍它. TCP协议作为 应用层 和 网络层 中间的 传输层协议,既要为 ...

  7. 【TCP/IP详解 卷一:协议】第十一章 UDP 用户数据报协议

    11.1 引言 UDP 是一个简单的 面向数据报 的运输层协议:进程的每个 输出操作 都正好产生一个 UDP数据报,并且组装成一份待发送的IP数据报. 这与 TCP 不一样,它是 面向流字符 的协议, ...

  8. 【TCP/IP详解 卷一:协议】第六章:DHCP 和自动配置

    简介 为了使用 TCP/IP 协议族,每台主机or路由器都需要一定的配置信息: IP地址 子网掩码 广播地址 路由或转发表 DNS 协议配置方法: 手动 通过使用网络服务来获得 使用一些算法来自动确定 ...

  9. 【TCP/IP详解 卷一:协议】第一章概论 学习笔记

    第一章 概述 游览了一下,本章主要是简介OSI模型的低层(1-4层).介绍了TCP/IP协议族的相关知识. TCP/IP的分层 Application <--> TCP / UDP < ...

随机推荐

  1. jquery判断复选框是否被选中

    $("#isUse").click(function(){ if($(this).is(':checked')){ $(this).attr('checked','checked' ...

  2. requestWindowFeature使用详解

    requestWindowFeature可以设置的值有: // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定        // 2.FEATURE_CONTEXT_MENU:启 ...

  3. EntityFramework走马观花之CRUD(中)

    如果是独立的实体对象,在底层数据库中它对应一张独立的表,那么,对它进行新建.删除和修改没有任何难度,实在不值浪费笔墨在它上头. 在现实项目中,完全独立的对象少之又少,绝大多数情况都是对象之间有着紧密的 ...

  4. springboot @ConfigurationProperties @EnableConfigurationProperties @Bean @ Component

    https://www.cnblogs.com/duanxz/p/4520571.html https://juejin.im/post/5cbeaa26e51d45789024d7e2 1. Bea ...

  5. EasyPlayerPro Windows播放器读取xml配置文件中的特殊字符问题

    问题被反馈 今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊-,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行: 问题复现 在EasyPl ...

  6. Asp.net MVC3 异常全局过滤器处理

    1.建立异常全局过滤器处理机制,在Gloabal.asax.cs文件中,有如下代码块: public static void RegisterGlobalFilters(GlobalFilterCol ...

  7. 我的Android进阶之旅------>报 error: Apostrophe not preceded by \ 的错误解决办法

    今天对项目进行国际化翻译的时候控制台出现了以下的错误: res/values/strings.xml:100: error: Apostrophe not preceded by \ (in Sorr ...

  8. JSP中的内容布局

    参考 :https://stackoverflow.com/questions/10529963/what-is-the-best-way-to-create-jsp-layout-template ...

  9. 使用了Tomcat JDBC连接池不能重连的问题

    在项目中用到了tomcat 的jdbc连接池,发现一个问题是,当数据库重启时,服务没有重新的去连接数据库,需要将部署的项目重新启动才能连接到数据库.经过测试对配置做一下修改: 在配置dataSourc ...

  10. Java for LeetCode 121 Best Time to Buy and Sell Stock

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...