武汉理工大学TCPIP及网络编程复习重点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复习重点:
TCP/IP基础:分层模型、IP地址特点、应用层主要协议;
网络编程基础:预留常用端口号、TCP与UDP的主要特点及各自编程主要步骤、应用层的唯一标识、IO模型、MFC对Windows Sockets封装类、WinInet API的封装类功能;ARP:主要步骤、主要概念、主要函数及功能
客户机/服务器模式编程:客户端/服务器端编程主要步骤、主要概念
FTP:主要交互命令、请求流程
HTTP:客户端请求主要命令、http请求流程
电子邮件:客户端主要命令、标准信头、发生接收主要步骤
编程分析:tcp编程客户机/服务器基本编程、udp基本编程。
TCP和UDP特点及各自编程步骤
TCP特点:
(1)TCP 是面向连接的运输层协议。
(2)每一条TCP 连接只能有两个端点(endpoint),每一条TCP 连接只能是点对点的(一对
一)。
(3)TCP 提供可靠交付的服务。
(4)TCP 提供全双工通信。
(5)面向字节流。
(6)TCP不保证最小传输速率,TCP不允许发送进程以设想的速率发送数据
(7)TCP不提供任何延时保障
UDP 特点:
(1)UDP 是无连接的,即发送数据之前不需要建立连接。
(2)UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
(3)UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
(4)UDP 支持一对一、一对多、多对一和多对多的交互通信。
(5)UDP 的首部开销小,只有8 个字节。
(6)UDP也不提供延时保障
编程步骤:
TCP编程
UDP编程
2.客户/服务器端编程主要步骤:
3.电子邮件
STMP指令
QUIT:终止会话
HELP:请求SMTP命令的帮助
NOOP:空操作
VRFY:验证地址(不要求一定启用)
EXPN:扩展一个别名
HELO:客户机问候服务器
MAIL:指定邮件的发送者
RCPT:指定邮件的接收者
DA TA:发送邮件的数据状态
REST:复位会话状态
SEND:指定要发送到用户终端的邮件的发送者SOML:Send或Mail
SAML:Send和Mail
TURN:交换客户机/服务器角色
标准信头:
信头的一般格式
信头由若干信头字段(header field)组成。
所有的信头字段包括:字段名,可选的空格,冒号“:”,可选的注解空格和可选的字段体,最后以回车换行符(CRLF)终止。即
信头字段= 字段名:字段体
结构化字段和非结构化字段
信头字段大体可以分为结构化字段和非结构化字段两种。
结构化字段有特定的格式,由语法分析程序检测。
非结构化的字段含有任意的数据,没有固定格式。
信头字段的元素
尽管Email信件的总体结构非常简单,但一些信头字段的结构是很复杂的。下面介绍一些大多数字段共有的元素。
(1)空白符
(2)注解
(3)字段折叠
(4)字段大小写
信头中必须要有的字段
在创建信件时,必须使用Date或Resent-Date字段指定创建信件的日期,必须使用From字段指定创建该信件的人或程序的信箱,必须至少使用TO、CC或Bcc中的一个,或者与它们等效的Resent-TO,Resent-CC,Resent-Bcc中的一个,来指定接收信件的人。
除了这些创建信件时要求的信头以外,每个处理信件的邮件传输代理(MTA)必须在它处理的信件头部开始处加一个Received字段,就好像打了一个中转邮戳,这就是我们通常在许多信件的开始看到许多个Received字段的原因。
发送电子邮件的一般步骤
1.打开邮件发送的对话;
2.指定发送者的邮箱;
3.指定接收者的邮箱;
4.发送邮件的内容;
5.结束邮件发送对话。
接收电子邮件的一般步骤
首先利用Winsock连接上POP3服务器,然后:
1.使用USER命令发送用户信箱名。
2.使用PASS命令发送信箱密码。如果密码和信箱不匹配,必须从上一步骤重新开始。3.对信箱邮件进行操作。
此阶段称为事务状态,在这一个阶段,有许多POP3命令可以使用,大体分为下面几类:(1)取得信箱及邮件状态的命令
Stat:取得信箱大小信息
List:取得邮件大小信息
Uidl:取得邮件的唯一标识符。
(2)取得邮件内容的命令
Retr:从服务器取回邮件
TOP:取邮件信头和信体的前N行。
(3)对邮件进行操作的命令
Dele:为邮件做删除标记。
Rset:复位POP会话。
4.接收邮件完毕,发送QUIT命令,结束POP3对话。
4.预留的常用端口号。
TCP UDP FTP SMTP TFTP HTTP
6 1
7 21 25 69 80
POP3 ONS SNMP RPC
110 58 161 135
5.应用层的唯一标识?
套接字(IP地址+端口号)
6.IO模型
①Select(选择)
②WSAAsyncSelect(异步选择)
③WSAEventSelect(事件选择)
④Overlapped(重叠)
⑤Completion port(完成端口)
注:Windows套接字在两种模式下执行I/O操作,及阻塞模式和非阻塞模式。
7.MFC对Windows Socket封装的类有哪些?
CAsyncSocket类和CSocket类
8.WinInet API的封装类功能。
①使用HTTP协议将HTML页面从服务器下载到浏览器中。
②发送FTP请求进行上传或下载文件,或获取目录列表。
③使用Gopher菜单系统获取网络资源。
④ 使用Gopher、FTP、HTTP协议建立于服务器的连接,向服务器发送请求以及断开与服务
器之间的连接。
9.HTTP:客户端请求的主要命令和HTTP的请求流程
9.1客户端请求的主要命令
①GET:请求获取Request-URI所标识的资源。
②POST:在Request-URI所标识的资源后附加新的数据。
③HEAD:请求获取由Request-URI所标识的资源的响应消息报头。
④PUT:请求服务器存储一个资源,并用Request-URI作为其标识。
⑤Delete:请求服务器删除Request-URI所标识的资源。
⑥TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。
⑦CONNECT:保留将来使用。
⑧OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。
9.2HTTP的请求流程
HTTP协议属于TCP/IP网络模型中的应用层的协议,两个应用程序(这里指浏览器和服务器)