更新时间:2018-11-22 15:45作者:李一老师
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
TCP/IP的四层结构图
应用层
传输层
互联层
链路层
2 请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?
答:
2.1 IP协议:
2.1.1 介绍
2.1.1.1 出发点(Motivation)
Internet协议是为了在包交换(packet-switched)计算机通讯网络的互联系统中使用而设计的。我们称这样的系统为catener【1】。Internet协议提供从发起者(source)到目的地(destination)的块数据(数据报)的传输,发起者和目的地都是由固定长度的地址标识的主机(host)。如果需要,Internet协议也提供长数据报的分片(fragmentation)和重组(reassembly),以通过小包(small packet)网络传输大数据报。
2.1.1.2 范围(Scope)
internet协议仅限于提供在互联网络系统上从发起者到目的地投递一个internet数据报所需的功能。不提供增强端到端(end-to-end)的可靠性,流程控制(flow control),排序(sequencing),和其它主机到主机协议上常有的服务。internet协议可以支持网络提供不同类型和不同质量的服务(The internet protocol can capitalize on the services of its supporting networks to provide various types and qualities of service.)。
2.1.1.3 接口(Interfaces)
在internet环境中,本协议被视为主机到主机(host-to-host)的协议。本协议调用本地网络协议来携带internet数据报到下一个网关或者目的主机。
比如,TCP模块调用internet模块携带一个TCP分片(该分片包含了TCP头部和用户数据)作为一个internet数据报的数据部分。TCP模块会在internet头部中提供地址(addresses)和其他参数作为调用Internet模块的参数。然后internet模块会创建一个internet数据报并且调用本地网络接口来传输internet数据报。
比如,对于ARPANET,internet模块会调用一个本地网络模块(local net module),该模块会给internet数据报添加一个1822个字节的前导字符,创建一条传输给IMP的ARPANET消息。ARPANET地址将通过本地网络接口从internet地址中获取,该地址是ARPANET中的某些主机的地址,该主机可能是个到其他网络的网关。
2.1.1.4 操作(operation)
internet协议执行两个基本功能:寻址(addressing)和分片(fragmentation).
internet模块使用在internet头部中携带的地址来给目的地址传送internet数据报.传输路径的选择被称作选路(routing).
internet模块使用internet头部中的域来分片和重组internet数据报,这在通过"小包"网络传输的情况下是必要的.
操作模型是位于每个主机上的internet模块负责internet通信,位于每个网关上的internet模块负责网络互联.这些模块都具有解析地址,分片和重组数据报等相同的功能.另外,这些模块(特别是网关上的internet模块)具有选路和其他功能对应的程序.
internet协议将每个internet数据报视为同任何其他internet数据报无关的独立实体.这里不存在连接或者逻辑回路(虚的或其他).
internet协议使用4个主要的机制提供服务:服务类型(Type of Service),生存时间(Time to Live),操作(Operation)和校验和(Header Checksum).
服务类型用来指示要求的服务质量.服务类型是一个抽象的整套的参数,这些参数指定了组成internet的网络中提供的服务选择.这个服务指示类型在选路的时候被网关用来为某一个特定的网络,下一个网络或者下一个网关选择真实的传输参数.
生存时间数据报生存时间的上限.它由数据报的发送者设定,在网络上每个点,当数据报被处理的时候,逐渐递减.如果生存时间在internet数据报到达目的地址前达到0值,internet数据报就被销毁.生存时间可以看作一个自我销毁时间限制.
选项(options)提供了在某些情况下需要或有用的控制功能,但是大多数情况下是不必要的.选项包括时间戳(timestamp),安全(security)和特殊选路(special routing)
校验和提供了处理internet数据报使用到的信息被正确传输的确认.数据可能包含错误.如果校验和失败了,internet数据报就被检测到错误的实体立即丢弃.
Internet协议并没有提供可靠传输机制.没有端对端或者逐跳(hop-by-hop)的确认机制.没有数据的错误控制,只有一个头部校验和.没有重传.没有流控.。检测到的错误可以通过Internet 控制消息协议(ICMP)来报告,该协议在internet协议模块中实现.
2.2 TCP是Transmit Control Protocol(传输控制协议)的缩写,工作于传输层,TCP提供一种面向连接的,可靠的字节流服务。
2.3 UDP是User Datagram Protocol(用户数据报协议)的缩写,在运输层,UDP提供不可靠的传输数据服务
3 请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?
答:
3.1 交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。
3.2 路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。
4 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
答:全局变量是整个程序都可访问的变量,谁都可以访问,生存期在整个程序从运行到结束(在程序结束时所占内存释放),而局部变量存在于模块(子程序,函数)中,只有所在模块可以访问,其他模块不可直接访问,模块结束(函数调用完毕),局部变量就消失,所占据的内存释放。
在任何函数外面定义的变量就是全局变量,在函数内部定义的变量是局部变量,这是它们在程序中的实现过程。
操作系统和编译器是根据程序运行的内存区域知道他们的,程序的全局数据放在所分配内存的全局数据区,程序的局部数据放在栈区。
5 y ,3^MR一个byte几个单位。(计算机基础) PUt$[@l@