程序=算法+数据结构
重定位
程序执行时,必须将地址空间变为绝对地址才能访问系统分配的内存
地址重定位:操作系统把用户程序指令中的相对地址变换成为所在存储中的绝对地址的过程
地址重定位实现了:从逻辑地址到物理地址的转换
按照重定位时机分类:静态重定位、动态重定位
1. 地址的静态重定位
定义:在程序运行之前,为用户程序实行了地址重定位工作
一般由操作系统中的重定位装入程序完成
重定位装入程序的输入:用户把自己的作业链接装配成一个相对于 0 编址的目标程序
过程:
重定位装入程序根据当前内存的分配情况,按照分配区域的起始地址逐一调整目标程序指令中的地址部分。目标程序在经过重定位装入程序加工之后,不仅进入到分配给自己的绝对地址空间中,而且程序指令中的地址部分全部进行了修正,反映出了自己正确的存储位置,保证了程序的正确运行
特点:
在装入前实现调整
地址要有标识
每次装入都要进行定位
装入后地址不再改变(静态)
2. 地址的动态重定位
定义:在程序执行寻址时进行重定位,访问地址时,通过地址变换机构改变为内存地址
用户程序原封不动的装入内存,运行时再完成地址的定位工作
动态重定位需要硬件的支持,要求系统中配备定位寄存器和加法器
特点:
程序可装入任意内存区域(不要求占用连续的内存区)
只装入部分程序代码即可运行
改变系统时不需要改变程序(程序占用的内存空间动态可变,只需要改变定位寄存器中的值即可)
程序可方便共享
进程数小于资源数,则不会发生死锁的公式为
①最多申请资源数=资源总数/进程数(可以整除的条件下)
②最多申请资源数=(资源总数/进程数)+1(不可以整除的条件下)
一层(物理层):网卡、集线器、中继器
二层(数据链路层):网桥、交换机
三层(网络层):路由器
传输层、应用层:网关。
广域网、局域网
LAN:局域网。局域网是指在较小的地理范围内,将两台以上的计算机通过传输电缆连接起来,实现资源共享。局域网的传输速度通常在10Mb/s~1000Mb/s之间,主干1000Mb/s、桌面100Mb/s是目前的主流技术。局域网的设计通常是针对于一座建筑物内,提高资源和信息的安全性,用于减少管理者的维护操作等。客户/服务系统(C/S----B/S)是现代局域网一个新的应用,目前主要是用在客户/服务数据库系统中。客户端向服务器发送请求,服务器再将处理结果返回给浏览器或者客户端程序。
WAN:广域网。广域网是将一个较大的地理范围内,将多台计算机连接起来相互进行通信、共享资源的网络。与局域网相比,广域网的传输速度相对要慢的多。在线路连接形式上有电话线、专线等几种。在人们的思想中总认为WAN与LAN的区别在,WAN是一种通过电话线路来实现地理位置相隔很远的异地间进行通信的网络。但随着通信技术与网络技术的发展,这个定义已经不再确切,相应地人们将逐步淡化WAN与LAN之间的界限,也可以说是将异地的局域网连在一起便形成广域网。
MAN:城域网
PAN是一个局域网;从电信网络的角度来看,PAN是一个接入网,因此有人把PAN称为电信网络
ARP
地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。还有一种说法是将第三层(IP)映射到第二层(MAC)地址。
计算机网络每一层使用的协议
1.应用层/表示层
- 使用客户-服务器方式的是应用层的协议
- 超文本传输协议HTTP
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。
通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。
- 文件传输协议FTP
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
- 简单邮件传输协议SMTP
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
- 域名系统DNS
DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。DNS是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库。
- 安全外壳协议SSH
SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。
- 动态主机配置协议DHCP
- 网络校时协议NTP
- 实时流传输协议RTSPRTP
- 控制协议RTCP
- 简单网络管理协议SNMP
2.传输层
- 传输控制协议TCP(Transport Control Protocol)
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。
在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
- 用户数据报文协议UDP(User Datagram Protocol )
UDP是一个简单的面向数据报的传输层协议,正式规范为RFC 768。
在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。
UDP首部字段由4个部分组成,其中两个是可选的。各16bit的来源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度域,用来指定UDP数据报包括数据部分的长度,长度最小值为8byte。首部剩下地16bit是用来对首部和数据部分一起做校验和(Checksum)的,这部分是可选的,但在实际应用中一般都使用这一功能。
由于缺乏可靠性且属于非连接导向协议,UDP应用一般必须允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体(流技术)、即时多媒体游戏和IP电话(VoIP)一定就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(TCP协议)来代替UDP。
由于缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。
-
数据报拥塞控制协议DCCP(Datagram Congestion Control Protocol)
-
流控制传输协议SCTP(STREAM CONTROL TRANSMISSION PROTOCOL)
- 实时传送协议 RTP(RTPReal-time Transport Protocol)
- 资源预留协议RSVP (Resource ReSer Vation Protocol)
- 点对点隧道协议PPTP ( Point to Point Tunneling Protocol)
3.网络层
- 网际协议IP (IPv4 · IPv6)
网际协议,或称互联网协议,是用于报文交换网络的一种面向数据的协议。 IP是在TCP/IP协议中网络层的主要协议,任务是仅仅根据源主机和目的主机的地址传送数据。为此目的,IP定义了寻址方法和数据报的封装结构。第一个架构的主要版本,现在称为IPv4,仍然是最主要的互联网协议,尽管世界各地正在积极部署IPv6。
ARP
RARP
ICMP
ICMPv6
IGMP
RIP
OSPF
BGP
IS-IS
IPsec
ICMP
IGMP
4.网络接口层
ethernet802.3
Token Ring 802.5
X.25
Frame Rely
HDLC
PPP
作者:rogertan30
链接:https://www.jianshu.com/p/dd35c748176c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
内部网关与外部网关
网关协议分内部网关协议和外部网关协议,内部主要有OSPF,RIP,ISIS,EIRGP,外部有BGP。目前使用最多的外部网关是BGP-4。
ICMP:控制报文协议
PPP:点对点协议
以下是HTTP2对比HTTP1.1所用到的新技术
二进制分帧
首部压缩
流量控制
多路复用
请求优先级
服务器推送
网桥
数据链路层互联的设备是网桥(bridge),在网络互联中它起到数据接收、地址过滤与数据转发的作用,用来实现多个网络系统之间的数据交换。
网桥的基本特征
1.网桥在数据链路层上实现局域网互连;
2.网桥能够互连两个采用不同数据链路层协议、不同传输介质与不同传输速率的网络
3.网桥以接收、存储、地址过滤与转发的方式实现互连的网络之间的通信;
4.网桥需要互连的网络在数据链路层以上采用相同的协议
5.网桥可以分隔两个网络之间的通信量,有利于改善互连网络的性能与安全性。
6. 网桥只适合于用户数不太多(不超过几百个)和信息量不太大的局域网,否则有时会产生较大的广播风暴
7.由于网桥对接收的帧要先存储和查找站表,然后转发,这就增加了时延