第一章 概述

游览了一下,本章主要是简介OSI模型的低层(1-4层)。介绍了TCP/IP协议族的相关知识。

TCP/IP的分层

Application <--> TCP / UDP <--> ICMP / IP / IGMP <--> ARP / 硬件接口 / RARP <--> 传媒介质

要点:

  • (1)TCP 和 UDP 是运输层协议,均使用 IP 作为网络层协议。
  • (2)TCP使用的是不可靠的IP网络层协议,但是它本身提供一种可靠的运输层服务。可靠体现在,它能够确保数据报安全无误的抵达目的地。通过确认和重传机制。
  • (3)UDP 与 TCP 的区别在于,UDP本身并不可靠,它为Applications发送和接收数据包。
  • (4)IP是网络层的主要协议,同时被TCP 和 UDP使用。TCP 和 UDP 的每组数据均通过端系统和每个中间路由器中的IP层在互联网中传播。
  • (5)ICMP 是 IP 的附属协议,用于与其他主机交换错误报告和其他信息。IGMP 是 Internet组管理协议,它将UDP的数据报多播到多个主机。
  • (6)ARP(地址解析协议) 和 RARP(Reverse) 是某些NetInterface使用的特殊协议。用来转换IP层与网络接口层(对应OSI中的数据链路层和物理层)使用的地址。

互联网的地址

要点

  • (1)互联网上的每一个接口Interface都必须有一个唯一的Internet地址(也称为IP地址),IP地址长为32bit。
  • (2)地址通常写成四个十进制的数,每个整数对应一个字节。这种表示方法称作点分十进制表示法
  • (3)共5类,如下:
 类型|         范围
A| 0.0.0.0 -> 127.255.255.255
B|128.0.0.0 -> 191.255.255.255
C|192.0.0.0 -> 223.255.255.255
D|224.0.0.0 -> 239.255.255.255
E|240.0.0.0 -> 255.255.255.255
  • (4)多接口的主机有多个IP地址,其中每个接口对应一个IP地址。
  • (5)InterNIC分配IP地址。它只分配网络号。
  • (6)IP地址有三类:单播地址,广播地址,多播地址。

封装和分用

封装要点

  • (1)TCP传给IP的数据单元简称为TCP段,IP传给网络接口层的数据单元叫做IP数据段。
  • (2)通过以太网传输的比特流称为帧。
  • (3)帧的物理特性:46-1500字节之间。
  • (4)准确来说,IP和网络接口层之间传送的应该是分组(packet)
  • (5)IP在生成的IP首部加入某些标示(协议域),表明数据属于哪一层,以区分上层(运输层)采用何种协议。
  • (6)运输层协议也要在生成报文首部加入一个应用程序的标示符(源端口号和目的端口号),用来区别不同的应用程序application。
  • (7)网络接口层同理也要添加标示,说明网络层采用何种协议。

分用要点

  • 当目的主机收到一个以太网数据帧的时候,数据就开始从协议栈的底部往上升,同时去掉各层协议添加的报文首部。这个过程称为分用。
  • 运输层根据TCP或UDP首部中的端口号进行分用。
  • 网络层根据IP首部的协议值进行分用。
  • 网络接口层根据以太网首部的帧类型进行分用。

客户-服务器模型

要点

  • (1)服务器分为重复型和并发型。
  • (2)重复性服务器进行交互的步骤:
1.等待Client的请求
2.处理Client请求
3.发送响应给Client
4.返回1.
  • (3)并发型服务器进行交互的步骤:
1.等待Client的请求
2.启动一个新服务器处理Client请求。处理结束后终止这个新服务器。
3.返回1.
  • (4)重复型服务器在步骤2时不能处理其他Client的请求。而并发型服务器可以利用生成其他新服务器的方法同时处理多个Client的请求。
  • (5)一般来说,TCP服务器是并发的,UDP服务器是重复的。

internet和Internet的区别

internet的意思是用一个共同的协议族把多个网络连接在一起。

Internet的意思是世界范围内通过TCP/IP协议互相通信的所有主机集合。

Internet 是一个internet,而internet不一定是Internet。

API:socket和TLI

API:Appliaction Programming Interface,相当于接口函数。ASP.NET Web API使用示例

拾遗

  • (1)端口号用来标示相互通信的应用程序。服务器使用知名端口号,而客户端使用临时设定的端口号。
  • (2)网络层 与 运输层 之间的区别:

    网络层(IP)提供点对点的服务。

    运输层(TCP/UDP)提供端对端的服务。
  • (3)点对点端对端的区别

【TCP/IP详解 卷一:协议】第一章概论 学习笔记的更多相关文章

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

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

  2. TCP/IP详解 卷1 第一章概述

    第一章概述 1.2 分层 网络编程通常分不同层次进行开发,每一层负责不同的通信功能. 一个协议族比如TCP/IP,通常是一组不同层次上多个协议的组合.一般可以认为是是四层协议系统: 链路层:有时也称作 ...

  3. TCP/IP详解 卷一(第二章 链路层)

    在TCP/IP协议族中,链路层主要有三个目的: 1.为IP模块发送和接收IP数据报 2.为ARP模块发送ARP请求和接收ARP应答 3.为RARP请求和接收RARP应答 TCP/IP支持多种不同的链路 ...

  4. TCP/IP详解阅读记录----第一章 概述

    1.TCP/IP协议族中不同层次的协议 2.五类互联网地址 3.各类IP地址范围 4.数据进入协议栈时的封装过程 5.以太网数据帧的分用过程

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 解决 libev.so.4()(64bit) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64案例

    在mysql主从同步时经常会用到Xtra, XtraBackup可以说是一个相对完美的免费开源数据备份工具,支持在线无锁表同步复制和可并行高效率的安全备份恢复机制相比mysqldump来说优势较大好处 ...

  2. 智能指针 - 现代C++新特性总结

    C++98中的智能指针通过一个模板类auto_ptr来实现,new操作符返回的指针可以交由它来管理,程序员不用再显式的调用delete,这在一定程度上避免了堆内存忘记释放的问题:不过auto_ptr有 ...

  3. Oracle彻底删除11gR2 GI

    Oracle彻底删除11gR2 GI 环境:RHEL 6.5 + Oracle 11.2.0.4 GI 需求:在搭建Standby RAC时,安装GI软件期间由于GI安装遇到一些问题,root脚本执行 ...

  4. linux中vim的常用方法

    i 当前光标位置插入 a 当前光标后插入 0 另起一行插入 A 在光标所在行尾插入 I 在光标所在行首插入 :set nu设置 行号 :set nunu 取消行号 gg 到第一行 G 到最后一行 $ ...

  5. tfs项目解绑及svn上传

    1.tfs解绑 file--源代码管理——tfs解绑 2.svn将本地的文件夹上传到server 右击--import--url--新建文件夹

  6. 利用javascript实现css操作

    在很多情况下,都需要对网页上元素的样式进行动态的修改.在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用.效果.以及缺陷. 1.使用obj.className来修改样式表的类名. ...

  7. java编译 Error: Could not find or load main class java执行包main方法

    在java源文件开头有包声明语句,编译的时候需要指定生成的class文件路径. 解决方法: javac -d your_path your_class.java 例如:javac -d . First ...

  8. python 字符串的I/O 操作

    想使用操作类文件对象的程序来操作文本或二进制字符串 使用io.StringIO() 和io.BytesIO() 类来创建类文件对象操作字符串数据 >>> s = io.StringI ...

  9. python webdriver 从无到有搭建数据驱动自动化测试框架的步骤和总结

    一步一步搭建数据驱动测试框架的过程和总结 跟吴老学了搭建自动化数据驱动的框架后,我在自己练习的时候,尝试从简单的程序进行一点一点的扩展和优化,到实现这个数据驱动的框架. 先说一下搭建自动化测试框架的目 ...

  10. 由浅入深之Tensorflow(3)----数据读取之TFRecords

    转载自http://blog.csdn.net/u012759136/article/details/52232266 原文作者github地址 概述 关于Tensorflow读取数据,官网给出了三种 ...