一、基础知识
计算机网络 计算机网络是一个非常复杂的系统,涉及许多组成部分: 主机(hosts)、路由器(routers)、各种链路(links)、应用( applications)、协议( protocols)硬件、软件 网络体系结构的特点 1.网络体系结构是从功能上描述计算机网络结构计算机网络体系结构简称网络体系结构(network architecture)是分层结构,每层遵循某个/些2.网络协议完成本层功能。 3.计算机网络体系结构是计算机网络的各层及其协议的集合 4.体系结构是一个计算机网络的功能层次及其关系的定义 5.体系结构是抽象的 为什么采用分层结构? 1.结构清晰,有利于识别复杂系统的部件及其关系 ·分层的参考模型(reference model )模块化的分层易于系统更新、维护 ·任何一层服务实现的改变对于系统其它层都是透明的 2.有利于标准化 基本概念 实体(entity)表示任何可发送或接收信息的硬件或软件进程。 协议是控制两个对等实体进行通信的规则的集合,协议是“水平的”任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是“垂直的”。 下层协议的实现对上层的服务用户是透明的。 同系统的相邻层实体间通过接口进行交互,通过服务访问点 SAP(Service Access Point),交换原语,指定请求的特定服务。
二、OSI模型
自顶向下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 表示层 处理两个系统间交换信息的语法与语义问题 1.数据表示转化 ·转换为主机独立的编码 2.加密/解密 3.压缩/解压缩
会话层 负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。
接下来我们将会在五层因特网协议栈重点介绍其余5个层次的功能和特点。
三、五层因特网协议栈
因特网协议栈共有五层:应用层、传输层、网络层、链路层和物理层。不同于OSI七层模型这也是实际使用中使用的分层方式 (1)应用层(网络应用) 功能:应用层是网络应用程序及其应用层协议存留的地方。 提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP(web文档的请求),HTTPS,FTP(文件的传送),TELNET,SSH,SMTP,POP3等。 一个端的应用程序使用协议与另一个端系统的应用程序交换信息分组 (2)传输层(端-端) 功能:在应用程序端点之间传送应用层报文。 把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。 传输层有两种协议,即TCP和UDP,二者根据不同规则向应用程序提供不同的服务。其中TCP协议的服务包括向目的地的确保传递和流量 控制,TCP也将长报文划分为短报文,并提供拥塞控制机制。 a.流量控制(Flow control)·避免淹没接收端 b.差错控制(Error control)·检测并重传损坏或丢失帧,并避免重复帧 c.访问(接入)控制(Access control)·在任一给定时刻决定哪个设备拥有链路(物理介质)控制使用权
1.TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。 2.虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为 3.对数据准确性要求高,速度可以相对较慢的,可以选用TCP
(3)网络层(源主机-目的主机) 功能:将称为数据报的网络层分组从一台主机移动到另一台主机。 因特网的网络层包括IP协议,该协议定义了在数据报中的各个字段以及端系统和路由器如何运作这些字段。所有网络层的组件必须运行IP协议。 因特网的网络层也包括路由协议(顾名思义,该协议可以决定路由的选择),他根据该路由将数据报从源传输到目的地。因特网有很多路由选择协议。 (4)数据链路层(点-点) 功能:将分组从一个节点(路由、主机)移动到下一个节点。 数据链路层负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。 由链路层提供的服务取决于应用于该链路的特定链路层协议,与TCP协议不同的是,TCP提供一个端到另一个端的交付,在此过程中可能会经过多条链路,每条链路都有不同的链路层协议。 通俗来讲TCP提供的协议是一个起始地点到目的地的寻址,然而这条路上会遇到不同的站点(路由),每个站点间的传输需要链路层协议来完成。
(5)物理层(点-点) 功能:物理层将帧中的一个个比特从一个节点移动到另一个节点(对比链路层将整个帧从一个网络元素移动到邻近的网络元素) 在局部局域网上传送数据帧(data frame),它负责管理计算机通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。
完整流程图如下: 如图所示,链路层交换机完成了第一层和第二层(物理层、链路层),路由器实现了第一层到第三层(物理层、链路层、网络层)。 上图也具化了该体系的封装概念。在发送主机端,一个应用层报文M被传输给传输层(运输层),运输层收到报文并附上附加信息Ht(首部信息),该首部将被接收端的传输层使用。应用层报文和传输层首部信息构成了传输层报文(Ht + M)。在网络层增加了如源和目的端系统地址等网络首部信息Hn生成了网络数据层报。在链路层生成链路层帧,由上至下一步一步封装,构成首部字段+有效载荷字段的结构。
四、IP地址、mac地址和端口号
在利用TCP/IP协议族进行通信的时候,有三个比较关键的确认身份的信息:mac地址、IP地址和端口号。
1.IP地址:(基于计算机或路由器)在网络层的IP头部里,用于识别网络中互联的主机和路由器,其实主要是确认子网,通过子网掩码确认某个IP地址所在的子网,而后再在子网内部确认mac地址就能找到准确的用户了。(32位,全球唯一) 2.MAC地址(物理地址):(基于网卡或路由器)在数据链路层包裹在以太网头部中的,它主要用来识别同一个链路中的不同计算机。Mac地址即网卡号,每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址,长度是 48 个二进制位,通常用 12 个十六进制数表示。(全球唯一,局部使用) 3.端口号:在传输层包含在TCP/UDP头部中的,用于识别应用程序。一台主机上能运行多个程序,那么接收到的消息到底是哪个程序的呢?就需要端口号来确认。(主机中唯一) 端口号有两种: 固定的端口号,是形如http,telnet,ftp等广为使用的应用协议所使用的端口号是固定的 动态分配的端口号,这个时候服务端要确定监听端口号,接受服务的客户端没必要确定端口号
|