Fork me on GitHub

计算机网络学习笔记:(三)传输层


本文是计算机网络课程传输层部分的笔记。

传输层两个协议简介

传输层有两个协议:TCP和UDP。

TCP:传输控制协议(Transmission Control Protocol)。文件分段传输,需要建立会话,可靠传输;流量控制功能

UDP:用户数据报协议(User Data Protocol) 一个数据包就能够完成数据通信,不分段;不需要建立会话,不需要流量控制;不可靠传输。

查看会话:netstat -n
查看是哪个进程创建的会话:netstat -nb

举例场景:
DNS域名解析:使用UDP协议;
QQ聊天:聊天记录 使用UDP协议;
QQ传文件:TCP协议;
发送邮件:可能很大需要分段,因此TCP协议;
FTP下载文件:TCP
屏幕广播 多播:UDP

传输层协议和应用层协议之间的关系

http = tcp + 80
https = tcp +443
rdp = tcp +3389
ftp = tcp + 21
访问共享文件夹=tcp + 445
SMTP【发送】 = TCP + 25
POP3【接收】 = TCP + 110
Telnet = TCP + 23
SQL = TCP +1433
DNS = UDP +53

服务和应用层协议之间的关系

服务是由端口决定的。
服务是启动状态才侦听端口。
网卡是大门,网卡设置安全,只允许80端口【Web服务】。只允许特定服务的端口。

服务使用TCP或者UDP的端口侦听客户端请求。

客户端使用IP地址定位服务器,使用目标端口定位服务。
可以在服务器网卡上设置只开放必要的端口,实现服务器的网络安全。

如何在Windows上安装服务

自带Telnet远程登录。远程桌面服务。
DNS服务
Web服务
SMTP服务
POP3服务

如何查看服务侦听的端口

netstat -an查看服务器上侦听的窗口。
netstat -n查看建立的会话
netstat -nb查看建立会话的进程
telnet 192.168.80.100 3389 测试远程计算机某个端口是否打开。

如何更改服务使用的默认端口

迷惑入侵者,使系统更加安全。

如何设置Windows网络安全

只开特定服务端口:本地连接属性——TCP/IP协议属性——高级——选项——属性

传输层功能和端口范围

传输层功能:
为相互通信的应用程序/应用进程提供了端到端的逻辑通信。(网络层是为主机之间提供了逻辑通信)。
传输层要对收到的报文进行差错校验。
传输层提供面向连接和无连接的服务。

传输层端口:16位端口号进行标志,标志本计算机应用层中的各进程。端口号只具有本地意义,本地不冲突即可。

熟知端口:数值一般为0-1023

1
2
3
4
5
6
7
FTP:21
TELNET:23
SMTP:25
DNS:53
HTTP:80
Https:443
RDP:3389

登记端口号:数值为1024~49151
客户端口号:数值为49152-65535

UDP协议

UDP的主要特点:
UDP是无连接的,即发送数据之前不需要建立连接。
UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
UDP面向报文,没有拥塞控制,很适合多媒体通信的要求。
UDP支持一对一、一对多、多对一和多对多的交互通信。
UDP的首部开销小,只有8个字节。
image

传输控制协议TCP概述

TCP是面向连接的传输层协议。TCP把连接作为最基本的抽象。

TCP提供可靠交付的服务。

TCP提供全双工通信。

面向字节流。8bit = 1byte

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

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:
TCP连接::={socket1, socket2}
= {(IP1:port1),(IP2:port2)}

TCP如何实现可靠传输

可靠传输的工作原理————停止等待协议

使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。

这种可靠传输协议常称为自动重传请求(Automatic Repeat reQuest)。

ARQ表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组。

停止等待协议优点是简单,缺点是信道利用率太低。

流水线传输:发送方可以连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断地传送,这种传输方式可获得很高的利用率。

连续ARQ协议:发送方维持发送窗口(发送窗口是5),滑动窗口。

累积确认。

TCP如何实现流量控制

接收端告诉发送端接收窗口有多大来实现流量控制。

TCP协议如何避免网络拥塞

暂无

TCP报文段的首部格式

image
首部字节一般是固定部分的20个字节,还有长度可变的选项。

TCP报文段首部 含义
源端口
目标端口
序号 第一个字节是整个文章的第几个字节。
确认号 收到数据包后,让继续发的号
数据偏移 占4位;记录第多少个字节是数据。十进制最大为15,代表最大15x4=60个字节。
URG 设为1时代表紧急,发送端不排队,提前传走。
ACK 确认号
PSH push,设为1代表接收端不排队,直接交给应用程序
RST reset,表明TCP会话出现严重错误,需要重新连接。
SYN 同步,SYN攻击:伪造不存在的IP地址。land攻击:源地址和目的地址同一个。
FIN 数据传完了,最后释放连接。
窗口 假设客户端接收缓存为65535字节,服务器就设置发送缓存65535字节(不能超过),反向同样也需要协商
检验和
紧急指针 URG=1时才起作用。指明紧急数据结束的位置。
选项(长度可变) 可以规定最大数据报的长度MSS,是否支持选择性确认SACK,时间戳
填充 凑够四个字节整数倍

三个建立会话的数据包。MSS=1460数据包最大字节

TCP如何实现可靠传输

1.以字节为单位的滑动窗口技术

发送窗口由接收窗口大小来决定的。

超时重传时间的选择

$$新的RTTs = (1-\alpha)\times (旧的RTTs) + \alpha \times (新的RTT样本)$$

RFC2988推荐的$\alpha$值为1/8。

TCP的传输连接管理

传输连接有三个阶段,即:连接建立、数据传送和连接释放。

三次握手建立TCP连接

SYN=1,ACK=0,seq=x
SYN=1,ACK=1,seq=y,ack=x+1
ACK=1,seq=x+1,ack=y+1

连接释放

------ 本文结束感谢您的阅读 ------
坚持原创技术分享,您的支持将鼓励我继续创作!