计算机网络笔记之传输层

一、【传输层的寻址与端口】

复用:应用层所有应用进程都可以通过传输层运输到网络层。
分用:传输层从网络层受到数据后交付指明的应用进程。
逻辑端口/软件端口: 端口是传输层的SAP,标识着主机的应用进曾。
端口号只有本地意义,在因特网中不同计算机的端口是没有联系的。
端口号长度为16bit,能表示65536个不同的端口号

端口号按范围分:
①服务端使用的端口号:
(1)熟知端口号:给TCP/IP最重要的一些应用程序,让所有用户都知道0~123
(2)等级端口号:为没有熟知端口号的应用程序使用的1024~49151
②客户端使用的端口号:仅仅在客户进程运行时候才动态选择的端口号49152~65535

传输层的寻址与端口

应用程序熟知端口号
FTP21
DNS53
TELNET23
SMTP25
TFTP69
HTTP80
SNMP161

在网络中采用发送方和接收方的套接字来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字Socket=(主机IP地址,端口号)

二、【用户数据协议UDP概述】

UDP只在IP数据报服务之上增加了很少功能,即复用分用差错检测功能

UDP的主要特点:
1.UDP是无连接的,减少开销和发送数据之前的时延。
2.UDP使用最大努力交付,即不保证可靠交付。
3.UDP是面向报文的,蛇和一次性传输少量数据的网络应用。
4.UDP无拥塞控制,适合很多实时应用。
5.UDP首部开销小,8B,TCP20B。
在这里插入图片描述

ps:应用层给UDP多长的报文,UDP就中央发送,即一次发一个完整报文。而且分用时找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。

UDP的首部格式
在这里插入图片描述
UDP校验
在这里插入图片描述
PS
伪首部只有在计算校验和的时候才出现,不向下传送也不向上递交。
17:封装UDP报文的IP数据报首部协议字段

UDP长度:UDP首部8B+数据部分长度(不包括伪首部)

校验过程:

在这里插入图片描述
在发送端:
1.填上伪首部
2.全0填充校验和字段
3.全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
4.伪首部+首部+数据部分采用二进制反码求和
5.把和求反码填入校验和字段。
6.去掉伪首部,发送。
在接收端:
1.填上伪首部
2.伪首部+首部+数据部分采用二进制反码求和
3.结果全为1则无差错,否则丢弃数据报/较给应用层附上出差错的警告。

三、【TCP报文段首部格式】
TCP报文段首部格式
1、序号:在一个TCP连接中传送的字节流中的每一个字节都按照顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
2、确认号:期望收到下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1位置的所有数据都已经正确收到。
3、数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位,即1个数值是4B。
4、6个控制位
紧急位URG:URG=1时,标明此报文段中有紧急数据,最高优先级的数据,应该尽快传送,不用在缓存里面排队,配合紧急指针字段使用。
确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1.
推送位PSH:PSH=1时,接收方应尽快交付接收应用进程,不再等到缓存填满的再向上交付。(重点针对接收方)
复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接
同步位SYN:SYN=1时,表明是一个连接请求/连接接收报文。
终止位FIN:FIN=1时,表明此报文段发送方数据已经发完,要求释放连接。

5、窗口:指的是发送本报文段的一方的接收窗口,即心在允许对方发送的数据量
6、检验和:检验首部+数据,检验时要加上12B的伪首部,第四个字段为6.
7、紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数
8、选项:本报文段长度MASS、窗口扩大、时间戳、选择确认…
9、TCP连接管理:
TCP连接传输的三个阶段
连接建立→数据传输→连接释放
TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫客户,而被动等待连接建立的应用进程叫服务器。
10、TCP的连接建立
“三次握手”
在这里插入图片描述
ROUND 1:
客户端发送连接请求报文段,无应用层数据:
SYN=1,seq=x(随机)

ROUND 2:
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。SYN=1,ACK=1,seq=y(随机),ack=x+1

ROUND 3:
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。
SYN=0,ACK=1,seq=x+1,ack=y+1

11、SYN洪泛攻击
SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送
TCP SYN, SYN是TCP三次握手中的第一一个数据包,而当服务器返回ACK后,该攻击者就不对
其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到!
再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务
器发送非常大量的这种TCP连接,由于每一个 都没法完成三次握手,所以在服务器上,这些
TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供
服务了。

应对办法:SYN cookie

12、TCP连接释放(四次握手)

参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)将被释放。
在这里插入图片描述

ROUND 1:
客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。FIN=1,seq=u

ROUND 2:
服务端回送一个确认报文段,客户到服务器这个方向的连接就是释放了——半关闭状态。
ACK=1,seq=v,ack=u+1

ROUND 3:
服务器端发送完数据,就打出连接释放报文段,主动关闭TCP连接。
FIN=1,ACK=1,seq=w,ack=u+1

ROUND 4:
客户端回送一个确认报文段,再等时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。
ACK=1,seq=u+1,ack=w+1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值