网络提纲总结.docx
- 文档编号:20108963
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:15
- 大小:348.93KB
网络提纲总结.docx
《网络提纲总结.docx》由会员分享,可在线阅读,更多相关《网络提纲总结.docx(15页珍藏版)》请在冰豆网上搜索。
网络提纲总结
•ARP的工作流程
当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址。
然后,寻找IP地址到实际MAC地址的映射,这需要发送ARP广播消息。
当ARP找到了目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头。
最后,协议栈将IP包封装到以太网帧中进行传送。
•ARP缓存的目的、工作原理、更新机制
目的和原理:
为提高解析效率,ARP使用了高速缓存技术(caching)。
在每台使用ARP的主机中(用户网络工作站),都保留了一个专用的内存区(即高速缓存),存放最近获得的IP地址到物理地址映射数据。
一收到ARP应答,主机就将信宿机(目标主机)的IP地址和物理地址存入缓存。
欲发送报文时,首先去缓存中查找相应数据,若找不到,再利用ARP进行地址转换。
这样就不必每发一个报文都要事先进行动态绑定。
改进:
⑴在ARP请求报文中放入信源机的IP地址与物理地址的绑定,以防信宿机紧接着为解析信源机的物理地址而再来一次动态绑定。
⑵信源机在广播自已的地址绑定时,网上所有主机都可以将该绑定信息存入自已的高速缓存。
⑶新机入网时或主机更换网卡时,令其主动广播地址绑定,以免其他主机对它运行ARP。
•ARP的改进(P39)
•ARP数据包结构的理解(P41)
•IP数据报结构的理解(P46)
•IP数据报选项的结构,典型的IP数据报选项
IP数据报选项的结果:
格式如下图所示,包括:
一个字节的代码(Code)字段,一个字节的长度(Length)字段,以及一个长度可变的数据(Data)字段。
代码字段表示选项的作用、类型以及是否被复制。
长度字段表示选项的总长度。
数据字段表示选项的信息,例如偏移量、指针、长度、地址等数据
典型:
1、EndofOptionList(EOL):
选项结束
EOL是1字节选项,用于提示这是最后一个选项,必须放在所有选项的后面。
2、NoOperation(NOP):
无操作
NOP也是1字节选项,用于选项之间的边界对正
•3、RecordRoute(RR):
记录路由
用于记录数据报在Internet中传送的路由。
该选项的长度是可变的,分割时不需复制,仅保留在第一个数据报中。
格式如下图所示。
路由记录数据字段在IP模块送出数据报之前是空的,指针字段的初值是4,指向第一个空字段。
4、StrictSourceandRecordRoute(SSRR):
严格的源路由
用于源主机预先指定数据报在Internet中传送的路由并且记录传送过程中经过的路由。
该选项的长度是可变的,分割时必须复制。
格式如下图所示。
5、LooseSourceandRecordRoute(LSRR):
宽松的源路由
LSRR也可以用于源主机预先指定数据报的传送路由并且记录传送过程中经过的路由。
格式如下图所示。
LSRR是一种宽松的路由策略,对传送路由的要求不及SSRR严格。
LSRR允许数据报经过任何非指定的路由器,这是与SSRR最大的区别。
6、Timestamp(TS):
时间戳
时戳(timestamp)就是数据报每经过一个网关时所记录下的当地时间。
IP数据报的“时戳”选项即用于记录时戳,其格式与源路由选项类似。
用于记录路由器处理数据报的时间。
该选项的长度是可变的,分割时不需复制,仅存在于第一个数据报中。
TS选项的格式如下图所示。
•IP数据报的分片与重组原理
IP协议采用分片(fragmentation)技术屏蔽物理网络帧MTU的不同
IP协议在确定数据报大小时,简单地以“方便”为原则。
也就是说,在不超过版本本身规定的数据报大小的前提下,IP协议选择当前最合适的数据报大小(所谓“合适”指在信源机所在物理网上能进行最大限度封装)。
IP协议提供分片(fragmentation)机制,在MTU较小的网络上,将数据报分成若干较小的部分进行传输。
这种较小的部分叫作片(fragment)
分片重组工作在信宿进行
分片重组作为分片的逆过程,跟分片过程在概念上是相对称的。
但实际上,片重组与分片有一个极不对称的特点:
分片是在传输路由中MTU不同的两网络交界处(网关)进行的。
所有的片重组在信宿机进行。
换言之,一旦数据报被分片,各分片就作为独立数据报进行传输,在到达信宿机之前有可能再次(或多次)被分片,但绝不进行片重组。
•三次握手链接建立协议的理解,包括标志位、序列号和应答号、状态
在三次握手法的第一次中,A机向B机发出连接请求(简称CR),其中包含A机端的初始报文序号(比如X)。
第二次,B机收到CR后,发回连接确认(CC),其中,包含B机端的初始报文序号(比如Y),以及B机对A机初始序号X的确认。
第三次A机向B机发送X序号数据,其中包含对B机初始序号Y的确认。
•四次握手链接拆除协议的理解,包括标志位、序列号和应答号、状态
•TCP有限自动机(P139)
•TCP数据报结构的理解(P123)
源端口(16比特):
报文段发送者端口号
目的端口(16比特):
报文段接收者端口号
顺序号(32比特):
TCP为每个要传送的字节分配一个正整数,称为顺序号。
确认号(32比特):
当控制位ACK置位时,此域包含的顺序号为接收端希望接收下一个字节的顺序号。
首部长度(4比特):
以32比特为单位的报文段首部的长度,即指出数据区在报文段中的位置。
保留位(6比特):
保留未用,全置为0。
控制位(6比特)
URG:
置位时表示紧急指针字段有效。
ACK:
置位时表示确认号字段有效。
PSH:
置位时表示本报文段要求PUSH操作,此时TCP会立即发送缓冲区中的数据,而不必等待缓冲区填满;在接收端,TCP立即把接收到的数据送给应用程序。
RST:
置位时表示连接复位,用于在连接发生异常时复位连接。
SYN:
置位时表示与对方同步顺序号。
FIN:
置位时表示发送方没有数据发送了,用于关闭连接。
窗口(16比特):
指出接收方可以接收的最大字节数,可以认为是接收端缓冲区的大小。
校验和(16比特):
用于检测数据是否在传输过程中受到破坏。
紧急指针(16比特):
当URG位置位时此字段才有效。
有效时标识了此报文段中紧急数据最后一个字节相对于此保文段数据区第一个字节的偏移量。
可选项:
此字段位数是可变的,没用到的位用0填充使其长度为32比特。
•FTP协议的基本数据类型
数据类型
ASCII类型,默认的数据类型,用于传输文本文件
EBCDIC类型(扩充的二进制编码的十进制交换码),类似ASCII的规范,主要在IBM计算机上使用
IMAGE类型(二进制文件类型)
LOCAL类型(指本地文件)
•FTP命令
FTP协议中将标准FTP命令分为三类:
存取控制命令:
主要提供了用户身份验证功能和目录切换功能
常用FTP命令
(1)存取控制命令
传输参数命:
传输参数设置后一直有效,除非用新的命令改变传输参数,或者新建立了数据连接
FTP服务命令:
定义了一系列文件传输及文件系统操作相关的命令,这些命令的参数通常是pathname(路径名),路径名的书写必须符合服务器端的规范
•FTP应答
•服务器接收客户端命令并处理之后,会返回给客户端相应的命令响应信息,这种返回响应的方式称作FTP应答
•FTP应答保证了文件传输过程中请求与行为的同步,并使得用户进程总是能了解服务器的状态
•每条FTP命令可以产生一条或多条响应,但多数情况下,每条命令只返回一条响应
•FTP响应与FTP命令一样,都是在客户端与服务器之间的控制连接上以NVTASCII码形式传送,并在每行末尾以CR-LF标志行结束
•FTP响应由一个3位的数字代码(应答码),一个字符串形式的表示命令执行成功与否的文本,以及命令执行成功后的输出组成。
•FTP响应的格式:
<3-digitcode>
•<3-digitcode>为3位数字的应答码
•
•
•
•FTP的两种工作模式:
PORT和PASV
Port:
•数据连接由服务器初始化完成
•客户端选择一个大于1024的端口连接服务器的21端口
•需传输数据时,客户端会送出PORT命令告诉服务器连接到自己的某一端口来建立数据连接,同时侦听该端口
•服务器收到PORT命令时,会使用20端口连接客户端在PORT命令中指定的端口号,然后传输数据
PASV:
•数据连接由客户端初始化
•客户端选择一个大于1024的端口连接服务器的21端口
•需传输数据时,客户端向服务器发送PASV命令,通知服务器自己希望连接到服务器的某一个端口
•如果服务器上这个端口是空闲可用的,则服务器返回ACK作为确认信息,然后返回用户所需的信息;若端口已被占用,服务器会返回UNACK的信息,FTP客户端会再次发送PASV命令重复上述过程
•HTTP数据报的基本格式
•HTTP请求方法
请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。
不同的请求对象对应GET的结果是不同的,对应关系如下:
对象 GET的结果
文件 文件的内容
程序 该程序的执行结果
数据库查询 查询结果
HEAD——要求服务器查找某对象的元信息,而不是对象本身。
POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。
•HTTP响应
HTTP响应由三部分组成:
状态行,消息报头,响应正文
状态行=HTTP版本号 状态码 原因叙述
状态码表示响应类型
1×× 保留
2×× 表示请求成功地接收
3×× 为完成请求客户需进一步细化请求
4×× 客户错误
5×× 服务器错误
典型的响应消息:
(1)
HTTP/1.1200OK//请求成功
Server:
Microsoft-IIS/5.0//web服务器
Date:
Thu,08Mar200707:
17:
51GMT
Connection:
Keep-Alive
Content-Length:
23330
Content-Type:
text/html
Expries:
Thu,08Mar200707:
16:
51GMT
Set-Cookie:
ASPSESSIONIDQAQBQQQB=BEJCDGKADEDJKLKKAJEOIMMH;path=/
Cache-control:
private
(2)
HTTP/1.0404NotFound//请求失败
Date:
Thu,08Mar200707:
50:
50GMT
Server:
Apache/2.0.54
Last-Modified:
Thu,30Nov200611:
35:
41GMT
Content-Type:
text/html
Connection:
Close
•Socket(P127—P131)
5.3.3.NET中的Socket类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Net;
usingSystem.Net.Sockets;
namespaceTestSocket
{classProgram
{staticvoidMain(string[]args)
{//创建IPEndPoint实例
IPAddressipa=IPAddress.Parse("127.0.0.1");
IPEndPointipep=newIPEndPoint(ipa,8080);
//创建Socket实例
Sockettest_socket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
Console.WriteLine("AddressFamily:
{0}",test_socket.AddressFamily);
Console.WriteLine("SocketType:
{0}",test_socket.SocketType);
Console.WriteLine("ProtocolType:
{0}",test_socket.ProtocolType);
Console.WriteLine("Blocking:
{0}",test_socket.Blocking);
//修改Socket实例的属性
test_socket.Blocking=false;
Console.WriteLine("newBlocking:
{0}",test_socket.Blocking);
Console.WriteLine("Connected:
{0}",test_socket.Connected);
//调用Bind( )方法,使Socket与一个本地终结点相关联
test_socket.Bind(ipep);
IPEndPointsock_iep=(IPEndPoint)test_socket.LocalEndPoint;
Console.WriteLine("LocalEndPoint:
{0}",sock_iep.ToString( ));
//关闭Socket
test_socket.Close( );
Console.ReadKey( );
}
}
}
•TcpClient/TcpListener(P145-P152&P218-P221)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 提纲 总结