分层

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

网络协议也是分层实现的。比如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)。

TCP/IP详解读书笔记:概述的更多相关文章

  1. TCP/IP详解读书笔记:链路层

    在TCP/IP协议族中,链路层主要有三个目的: 1)为IP模块发送和接受IP数据报: 2)为ARP模块发送ARP请求和接受ARP应答: 3)为RARP模块发送RARP请求和接受RARP应答: 以太网和 ...

  2. TCP/IP详解读书笔记:ARP-地址解析协议

    地址解析为两种不同的地址形式提供映射:32bit的IP和数据链路层使用的任何类型的地址. 当一台主机把以太网数据帧发送到位于同一局域网的另一台主机,是根据48bit的以太网地址而不是IP地址.设备驱动 ...

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

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

  4. TCP/IP详解学习笔记 这位仁兄写得太好了

      TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣 ...

  5. TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

    TCP/IP详解学习笔记   这位仁兄写得太好了   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...

  6. 【转】TCP/IP详解学习笔记(二)

    TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据 ...

  7. TCP/IP详解学习笔记

    TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...

  8. 【转】TCP/IP详解学习笔记(一)

      TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-T ...

  9. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

随机推荐

  1. Linux驱动虚拟地址和物理地址的映射

    一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...

  2. http://www.blogjava.net/xylz/archive/2010/07/08/325587.html

    http://www.blogjava.net/xylz/archive/2010/07/08/325587.html

  3. CentOS 6.5 源码安装subversion-1.8.8,附加mod_dav_svn模块

    题记:第一次写如此实践类的博文,都是亲身经历,折腾了大半天,仅记录供参考.(新手实践,有错误之处欢迎纠正.) 安装前准备: 1.已安装JDK1.7,并配置好环境变量. 2.已安装apr.apr-uti ...

  4. 试用cocos2dx 3.1.1

    最终有时间,開始全力投入cocos2dx开发了.之前也积累了不少.只是都是基于2.2.2的,3.1.1的版本号也出来一段时间,应该算是成熟了,今天就试试.一个最大的变化就是不须要cygwin了,直接使 ...

  5. Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)

    Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些 ...

  6. 30个iPhone健康应用帮助你保持身体健康

    来源:GBin1.com 技 术进步的最大缺陷是,现在大部分人花费大量时间在他们的电脑前和移动设备上.他们没有任何时间锻炼和顾及他们的健康.这些科技产品让我们变得慵 懒,甚至 让我们愿意花费闲暇的时间 ...

  7. liunx系统安装jdk的方法

    1.下载jdk 下载地址: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads ...

  8. LightOj 1221 - Travel Company(spfa判负环)

    1221 - Travel Company PDF (English) Statistics problem=1221" style="color:rgb(79,107,114)& ...

  9. git 关联远程分支

    问题解析: git本地新建一个分支后,必须要做远程分支关联.如果没有关联, git 会在下面的操作中提示你显示的添加关联.关联目的是如果在本地分支下操作: git pull, git push ,不需 ...

  10. css zoom与scale区别

    转自:http://www.zhangxinxu.com/wordpress/2015/11/zoom-transform-scale-diff/ 1.zoom的缩放是相对于左上角的:而scale默认 ...