网络编程~基础

国际标准化组织ISO在1983年形成了七层协议的体系结构,之后形成了五层协议的体系结构。

1、应用层:应用层直接为用户的应用进程提供服务。在因特网中的应用层的协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等。

(1)、FTP(File Transfer Protocol)文件传输协议(端口号21)

是用于文件传输的Internet标准。由FTP提供的文件传送是将一个完整的文件从一个系统复制到另一个系统中。FTP支持有限数量的文件类型(ASCII,二进制,等等)和文件结构(面向字节流或记录)。它采用两个TCP连接来传输一个文件,命令和应答在客户和服务器的控制连接上以NVT ASCII码形式传送,数据传输的默认方式通常也是NVT ASCII码。FTP服务器把文件列表从数据连接上发回,避免行的有限性对目录大小的限制。异常中止从客户传向服务器的文件:只要客户停止在数据连接上发送数据,并发送ABOR命令到控制连接上的服务器即可;异常中止接收:使用Telnet同步信号。

(2)、SMTP(Simple Mail Transfer Protocol)简单邮件传输协议(端口号25)

有时电子邮件也可用于发送文件。用TCP进行的邮件交换是由报文传送代理MTA完成的。两个MTA之间用NVT ASCII进行通信,SMTP的一个特色是它用NVT ASCII表示一切:信封、首部和正文。后续,新加入的SMTP命令影响了信封,首部可以使用非ASCII字母,正文(MIME)中也加入了结构。RFC 1425定义了扩充的SMTP的框架,其结果被称为扩充的SMTP(ESMTP)

2、运输层:运输层的任务就是负责向两个主机中的进程之间的通信提供服务。运输层主要使用以下两种协议:

(1)、传输控制协议TCP(Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的支付。

(2)、用户数据报协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的支付。

3、网络层:网络层负责为分组交换网上的不同主机提供通信服务。

4、数据链路层:传输数据的单位为帧。

5、物理层:在物理层上所传数据的单位是比特。物理层的任务就是透明的传送比特流。

传输控制协议TCP

1、TCP协议的主要特点:

(1)TCP是面向连接的运输层协议,也就是说,应用程序在使用TCP协议之前,必须先建立TCP连接,在传送数据完毕后,必须释放已经建立的TCP连接。

(2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。TCP连接的端点叫做套接字或者插口,端口号拼接到IP地址即构成了套接字。

(3)TCP提供可靠交付的服务。

(4)TCP提供全双工通信。

(5)面向字节流。

2、为什么TCP可以提供可靠性,其可靠性是如何保证的???

(1)数据可以完全到达接收方   应答确认机制(ack)和超时重传机制

(2)接收方数据是有序的  每一个TCP报文段都有相应的序号

(3)数据发送和接收保证完全一致  TCP首部有16位的检验码

3、解释TCP首部

TCP数据被封装在一个IP数据报中,如下图所示:

TCP首部数据格式,通常是20个字节:

(1)源端口和目的端口:各占2个字节,每个TCP段都包含源端和目的端的端口号,用于寻找发送端和接收端应用进程。

(2)序号:占4个字节,在一个TCP连接中传送的每一个字节都按顺序编号。序号用来标识从TCP发端向TCP收端发送的数据字节流,表示在这个报文段中的第一个数据字节。

(3)确认号:占4个字节,是期望收到对方下一个报文段的第一个数据字节的序号。

(4)首部长度(数据偏移):占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。

(5)保留:占6位,保留位今后使用,但目前应置为0。

(6)在TCP首部中有6个标志比特:

URG:紧急指针有效,当URG=1时,表明紧急指针字段有效;

ACK:确认序号有效,仅当ACK=1时确认号字段才有效,TCP规定,在连接建立后所有传送的报文段都必须把ACK置为1;

PSH:接收方应该尽快将这个报文段交给应用层,当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应;

RST:重建连接,当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接;

SYN:同步序号用来发起一个连接,在连接建立时用来同步序号;

FIN:发端完成发送任务,用来释放一个连接,当FIN=1时,表明此报文段的发送方的数据已经发生完毕,并要求释放运输连接

(7)窗口:占2个字节,窗口指的是发送本报文段的一方的接收窗口,窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量

(8)检验和:占2个字节

(9)紧急指针:占2个字节,紧急指针仅在URG=1时才有意义

(10)选项:长度可变,最长可达40字节,当没有使用选项的时候,TCP的首部长度是20字节。

用户数据报协议UDP

1、UDP协议的主要特点

(1)UDP是无连接的,即发送数据之前不需要建立连接,可以减少开销和发送数据之前的时延
(2)UDP不保证可靠交付,主机不需要维持复杂的连接状态表
(3)UDP是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层
(4)UDP没有拥塞控制
(5)UDP支持一对一、一对多、多对一和多对多的交互通信
(6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短

2、UDP如何能够实现可靠传输?

UDP实现ACK机制,发送一个确认报文段给接收方,当接收方收到消息之后,接收方再给发送方发送一个ACK消息,表示收到消息;如果发送方在一定的时间之内未收到ACK消息,则将消息再次发送。

3、解释UDP首部

UDP首部格式如下,通常是8个字节:

端口号:表示发送进程和接受进程。
UDP长度:指的是UDP首部和UDP数据的字节长度,其最小值是8(仅有首部)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值