编程语言
首页 > 编程语言> > 网络编程与协议分析复习纲要

网络编程与协议分析复习纲要

作者:互联网

网络编程与协议分析复习纲要


阅前提示:本文按照复习重点而写,不会涉及所有知识点

字节序Little-Endian和Big-Endian

1)Little-endian:将低序字节存储在起始地址(低位编址)
2)Big-endian:将高序字节存储在起始地址(高位编址)
例:0x01020304
Little-Endian:04,03,02,01
Big-Endian:01,02,03,04

主机字节顺序

大端Big-endian,小端Little-endian都有

网络字节顺序

大端Big-endian
低位在前(右),高位在后(左)即网络字节顺序

端口号

FTP:20和21
SMTP:25
DNS:53
HTTP:80
POP3:110
SNMP:161
HTTPS:443

计算机网络的OSI七层模型

OSI七层模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

计算机网络协议三要素

语法:定义了所交换数据的格式和结构,以及数据出现的顺序
语义:定义了发送者或接收者所要完成的操作,包括对协议控制报文组成成分含义的约定
同步:定义了事件实现顺序以及速度匹配,体现在当两个实体进行通信时,数据发送的事件以及发送的速率

网络体系结构的关键要素

协议和拓扑

TCP/IP协议体系结构

在这里插入图片描述

各类型IP网络地址所能容纳主机数

A类IP地址:2的24次方-2

B类IP地址:2的16次方-2=65534

C类IP地址:2的8次方-2=254

特殊IP地址

种类网络地址主机地址范例
网络地址指定网络地址全0157.34.0.0
直接广播地址指定网络地址全1157.34.255.255
受限广播地址全1全1255.255.255.255
本网络本主机地址全0全00.0.0.0
本网络特定主机地址全0指定主机地址0.0.123.24
环回地址127任意值127.0.0.1

私有地址:只能用在内部网络,不能用在因特网上,与因特网上地址不冲突

IP协议

IP数据报结构

在这里插入图片描述

IP数据报头部

P首部是IP模块为了正确传输数据而添加的各种控制信息的集合,是IP数据报的核心,其长度是20~60字节。在IP首部中,数据的组织都是低位在前(右),高位在后(左)即网络字节顺序

上层协议标识字段取值上层协议
1ICMP
2IGMP
6TCP
17UDP
50ESP
51AH
89OSPF

ICMP协议

ICMP报文划分

ICMP报文分为ICMP差错报告报文和ICMP查询报告报文

ICMP报文结构与封装

在这里插入图片描述

ICMP报文封装
在这里插入图片描述

各类型值的ICMP报文

IP路由

RIP协议与OSPF协议

RIP是一个广泛使用的内部网关协议。目前有两个版本:RIP-1和RIP-2
OSPF是一种基于SPF算法的路由协议。与RIP不同,没有跳数限制,并且选择最佳路径的度量标准可以基于带宽,延迟,可靠性和负载等服务类型

RIP协议的基本原理

作为基于距离向量算法的路由选择协议,RIP把到达目的网络的距离作为选择路由的度量,而距离一般指跳数,也就是所经过的路由器数量。每经过一个路由器,条数就增1,也就是距离增1,RIP认为一条好的路由就是他所经过的路由器数量最少的路由

OSPF协议的基本原理

OSPF协议是基于SPF算法的路由协议,为了有效减少路由信息更新过程中的通信量,引入了分层的思想,即在每个自治系统中,将网络划分为不同的区域。每个区域由位于同一自治系统中的一组网络,主机和路由器构成。区域内部的路由器以泛洪方式在区域内部交换路由信息。在区域的边界定义一个边界路由器,负责汇总该区域的信息,并将该信息传递到其他区域。每个自治系统都有自治系统边界路由器,用于实现与其他自治系统的连接与通信。这样,当网络中的某条链路状态发生变化时,此链路所在的区域中的每个路由器重新计算本区域路由表,而其他区域中的路由器只需要修改其路由表中的相应条目而无须重新计算整个路由表,节省了计算路由表的时间

反向路径转发基本思想

当多播数据报到达多播路由器时,路由器做RPF检查,以决定是否转发或抛弃该数据报,若成功则转发,否则抛弃,RPF检查过程如下:检查数据报的源地址,以确定该数据报经过的接口是否在从源到此路由器的最短路径上;若数据报是从源到此路由器的最短路径上,则RPF检查成功,转发该数据报到多播路由器输出接口表上的所有接口,否则RPF检查失败,抛弃该数据报

解决距离矢量算法的路由环路问题方法

  1. 定义最大值
  2. 水平分割技术
  3. 路由毒化
  4. 毒化逆转
  5. 控制更新时间
  6. 触发更新

TCP协议

TCP协议的主要特点

(1)向应用进程提供面向连接的服务,两个需要通过TCP进行数据传输的应用进程之间首先必须建立一个TCP连接
(2)提供全双工数据传输服务
(3)提供面向字节流的服务

TCP报文结构与封装

在这里插入图片描述

TCP报文的封装
在这里插入图片描述

TCP三次握手与四次挥手

TCP拥塞控制

Nagle算法与Clark算法

Nagle算法:主要针对发送方产生数据比较慢,而造成发送报文段包含数据量比较小的情况,其主要思想是强迫发送方等待,让它收集发送数据,以便发送大块数据,即通过降低发送次数来加大每次发送的数据量
Clark算法:主要针对接收方接收处理数据较慢,而造成频繁发送确认报文的情况。即只要接收方的接收缓冲区已满,则每次接收到TCP报文后返回窗口值为0的确认报文,以停止发送方的数据发送,直到接收缓冲区的空闲区域已经能容纳最大长度的报文段或有一半以上的接收缓空间已经空闲,再发送一个窗口值不为0的确认窗口,以重新更新发送方的滑动窗口大小,使发送方可以继续发送报文段

延迟确认算法的主要思想

延迟确认算法:当接收方收到报文段后,并不马上回复确认报文,而是等接收缓冲区已经有一定数量的空闲空间后,再回送确认报文段。这样便可减慢发送方滑动窗口的滑动速度,进而降低数据的发送速度。同时也减少了确认报文的数量,进而减少了通信量。但是延迟确认的延迟时间过长有可能迫使发送方重传没有确认的报文,因此延迟确认的时间不能太长,一般不能超过500ms

Socket编程

有连接与无连接的C/S程序工作模型图

面向连接
在这里插入图片描述
无连接
在这里插入图片描述

各套接字对应协议

流套接字:TCP协议
数据报套接字:UDP协议
原始套接字:UDP协议

常用Winsock函数

  1. WSAStartup函数
    功能:用于初始化WinSock,即检查系统中是否有Windows Sockets的实现库
  2. socket函数
    功能:为应用程序创建套接字
  3. bind函数
    功能:实现套接字与主机本地IP地址和端口号的绑定
  4. listen函数
    功能:将套接字设定为侦听状态,准备接收由客户机进程发出的连接请求
  5. connect函数
    功能:提出与一个服务器进程建立连接的请求,如果服务器进程接受请求,则服务器进程与客户机进程之间便建立一条通信连接
  6. accept函数
    功能:接受由客户机进程调用connect函数发出的连接请求
  7. shutdown函数
    功能:关闭套接字读写通道,即停止套接字接收/传送的功能
  8. closesocket函数
    功能:关闭套接字,释放与套接字关联的所有资源
  9. WSACleanup函数
    功能:终止使用WinSock,释放为应用程序分配的相关资源
  1. recv函数
    功能:在已建立连接的套接字上接收数据
  2. recvfrom函数
    功能:在无连接的套接字上接收数据
  3. send函数
    功能:在已建立连接的套接字上发送数据
  4. sendto函数
    功能:在无连接套接字上发送数据
  1. setsockopt函数
    功能:设定套接字的状态
  2. getsockopt函数
    功能:获取套接字上的相关信息
  3. htonl函数
    功能:将4字节主机字节顺序的数转换为网络字节顺序
  4. htons函数
    功能:将2字节主机字节顺序的数据转换为网络字节顺序
  5. ntohl函数
    功能:4字节网络字节顺序的数转换为主机字节顺序
  6. ntohs函数
    功能:将2字节网络字节顺序的数据转换为主机字节顺序
  7. inet_addr函数
    功能:将点分十进制数表示的IP地址转换为网络字节顺序的IP地址
  8. inet_ntoa函数
    功能:将网络字节顺序表示的IP地址转换为点分十进制数表示的IP地址
  9. gethostbyname函数
    功能:获取给定主机名的主机信息
  10. gethostbyaddr函数
    功能:获取给定地址的主机信息
  11. gethostname函数
    功能:获取目前正在使用的主机名称
  12. getpeername函数
    功能:获取与指定套接字相连的对方套接字地址

MFC中的工作者线程和用户界面线程的概念

利用MFC可以创建两种线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程之外的用户输入,响应用户及系统产生的事件和消息等。

ARP与RARP

ARP

ARP功能:IP地址到物理地址的映射
ARP请求数据包中,目的MAC地址字段内容一般为广播地址
ARP请求报文操作码字段:0x0001
ARP回应报文操作码字段:0x0002

RARP

RARP功能:物理地址到IP地址的映射
一般,RARP请求由一个正在引导的无盘计算机产生,并以广播方式发送给本网络中的每一台主机,包括RARP服务器
RARP请求报文操作码字段:0x0003
RARP回应报文操作码字段:0x0004

DNS协议

递归解析与反复解析

DHCP协议的功能

(1)支持IP地址动态分配
(2)支持IP地址静态分配
(3)支持租用地址管理
(4)支持永久租用地址
(5)恢复中止的租用地址

标签:协议,字节,IP,报文,编程,TCP,纲要,IP地址,复习
来源: https://blog.csdn.net/qoQAQop/article/details/122107694