TCP/IP 概述

允许不同厂家的各种型号的计算机使用不同操作系统互相进行通信

真正的开放系统

“全球互联网”或“因特网”的基础

2.分层

网络协议通常分不同层次进行开发,每一层 分别负责不同的通信功能。一个协议族,是一组不同层次上的多个协议的组合。

应用层	    (telnet ftp e-mail等)
运输层 (TCP udp)
网络层 (ip icmp igmp)
链路层 (设备驱动程序及接口卡)

TCP/IP协议族的四个层次

1)链路层/数据链路层/网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。

2)网络层/互联网层,处理分组在网络中大的活动。TCP/IP协议族中,包括IP协议(网际协议),ICMP(互联网控制报文协议),IGMP(internet组管理协议)。

3)运输层主要为两台主机上的应用程序提供端到端的通信。TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)、UDP(用户数据报协议)。

TCP为两台主机提供高可靠性的数据通信。

UDP为应用层提供简单数据报分组发送服务。任何必须的可靠性必须由应用层提供。

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

Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送、SNMP简单网络管理协议





TCP/IP协议族中,网络层IP提供的是一种不可靠的服务。就是说,它知识尽可能快的把分组从源结点送到目的结点,但是并不提供任何可靠性保证。另一方面,TCP在不可靠的IP层上提供了一个可靠的运输层。为了提供这种可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能。

大多数的TCP/IP实现也允许一个多接口主机来担当路由器的功能,但主机为此必须进行特殊配置。这种情况下,既可以称该系统为主机(当它运行某一应用程序时,如FTP或telnet),也可以称之为路由器(当它把分组从一个网络转发到另一个网络时)。

连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个LAN组合在一起,这样对上层来说就好像一个局域网。

3.TCP/IP的分层

IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。

ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。应用程序也有可能访问他,例如ping和traceroutre.

IGMP是internet组管理协议。用来把一个UDP数据报播到多个主机。

ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

4.互联网的地址

互联网上的每个接口必须由一个唯一的internet地址(也称IP地址)。IP地址长32bit。



通常写成四个十进制数,每个整数对应一个字节(点分十进制).区分各类地址最简单方法是看它的第一个十进制整数。



由于互联网上的每个接口必须由一个唯一的IP地址,因此必须要有一个管理机构为接入互联网的网络分配IP地址。这个管理机构就是互联网信息中心(internet network information centre),称作InterNIC。InterNIC只分配网络号。主机号的分配由系统管理员来负责。

InterNIC由三部分组成:注册服务(rs.internic.net),目录和数据库服务(ds.internic.net),以及信息服务(is.internic.net)。

三类IP地址:
单播地址(目的为单个主机)
广播地址(目的端为给定网络上的所有主机)
组播地址(目的端为同一组内的所有主机)

5.域名系统

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

6.封装

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些收不信息(有时还要增加尾部信息)。通过以太网传输的数据流称作帧(Frame).

7.分用

当目的主机收到一个以太网数据帧时,数据就开始从协议栈由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing).



为协议ICMP和IGMP定位一直是棘手的事情。图1-4,把它们与IP放在同一层上,是因为事实上它们是IP的附属协议。但是在这里,我们又把他们放在IP层的上面,这是因为ICMP和IGMP包报文都被封装在IP数据报中。

对于ARP和RARP,也遇到类似的难题。在这里把它们放在以太网设备驱动程序的上方,这是因为它们和IP数据报一样,都有各自的以太网数据帧类型。

8.客户-服务器模型

分为两种类型:重复型或并发型。

重复型步骤:

1.等待一个客户请求

2.处理客户请求

3.发送响应给发送给发送请求的客户

4.返回第一步

重复型服务器主要的问题发送在2状态。在这个时候,它不能为其他客户机提供服务。

并发服务器步骤:

1.等待一个客户请求

2.启动一个新服务器处理客户请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。此步骤进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。

3.返回1步

并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。

一般来说,TCP服务器是并发的,而UDP服务器是重复的。

9.端口号

服务器一般都是通过知名端口号来识别的。FTP-21,telnet-23,TFTP-69....

客户端通常对它使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户段欧豪又称临时端口号。

10.标准化过程

11.RFC

所有关于internet的正式标准都以RFC(Request for Comment)文档出版。另,大量的RFC并不是正式的标准,出版的目的只为提供信息。

12.标准的简单服务



//奇数--NCP(网络控制协议,ARPANET的运输层协议)派生--NCP单工

13.互联网

internet意思是用一个共同的协议族把多个网络连接在一起。而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合。

14.实现

15.应用编程接口

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

16.测试网络

网络层和运输层区别:网络层(IP)提供点到点的服务,运输层(TCP和UDP)提供端到端的服务。

来源:TCP/IP卷一

最新文章

  1. C#使用资源文件的方法
  2. vmwawre 虚拟机优化配置
  3. SharePoint 2013 工作流设计之Designer 使用“可视化视图”
  4. PHP 小方法之 仿百度蜘蛛采集
  5. iOS 10 UserNotifications 框架解析
  6. iOS获取设备型号、装置类型等信息
  7. 算法与数据结构实验题 5.2 Missile
  8. Web中Listener的创建
  9. 计算XX年的某月某日是当年的第多少天?是星期几?
  10. SQL语句添加,删除主键
  11. 关于linux音频指南
  12. springsecurity 源码解读 之 RememberMeAuthenticationFilter
  13. Python 3 进阶 —— 使用 PyMySQL 操作 MySQL
  14. php7连接 sqlserver踩过的坑,could not find driver解决方式
  15. springBoot bean注入
  16. php5.5.* mysqlnd驱动安装
  17. VC 线程间通信的三种方式
  18. python常用序列list、tuples及矩阵库numpy的使用
  19. ubuntu12.04安装KDevelop
  20. [洛谷P4900]食堂

热门文章

  1. 浅谈log4j-5-读取properties文件(转自godtrue)
  2. CentOS下如何根据Dump文件分析线上问题
  3. Eclipse和Intel idea的常用技巧
  4. url和资源的再理解
  5. Ubuntu16.04 64位编译安装Hi3520D_SDK_V1.0.4.0
  6. [转]Java对象的序列化和反序列化
  7. 安装mysql时包冲突解决方法
  8. F5负载均衡原理
  9. Linux内核移植到JZ2440
  10. 自定义Write节点的afterrender属性