博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
传输层总结
阅读量:3952 次
发布时间:2019-05-24

本文共 1106 字,大约阅读时间需要 3 分钟。

在这里插入图片描述

TCP的特点: 面向连接,可靠,时延大,适用于大文件。
UDP特点,无连接,不可靠,时延小,适用于小文件

下面内容,请全文背诵:

1.传输层的寻址与端口
1.复用: 应用层所有的应用进程都可以通过传输层再传输到网络层。
2.分用: 传输层从网络层收到数据后交付给指定的应用进程

复用:就是说 所有的进程,都会经过传输层。多对一

分用: 一对多,数据从传输层来找到对应端口的进程,发给这个进程。

端口号只有本地意义,在因特网中不同计算机的相同端口号是没有联系的。

端口号的 长度只有 16bit, 能表示65535 个不同的端口号

  1. 0~1023为重要的系统应用程序
  2. 登记端口号 为 1024~4915
  3. 客户端口号(49152~65535) 仅在客户端进程运行时才动态选择

套接字socket=(主机ip地址,端口号)

在网络中,采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个本机和它上面的一个进程

UDP 的使用场景:

1.适合一次性传输少量数据的网络应用
2. UDP无阻塞控制,适合很多实时的应用

比如IP电话,或者视频会议 等等。要求源主机以恒定的速率发送,不能有太大的延迟。

不管应用层多大的报文,UDP照样发送,一次一个完整的报文。
UDP首部开销小,8个字节。

TCP连接建立相关原理

假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器) 上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与客户服务器上某个进程之间的连接,客户中的 TCP会用一下步骤与服务器TCP连接

1: 首先,客户端发送连接请求报文,没有应用层的数据!!!

SYN=1,seq=x(随机) ( 注意:SYN 是连接同步位 ,英文是 sync大概的意思)

2:服务器收到了,(服务器自己)为该TCP连接分配缓存和变量,并且向客户端返回确认报文段,允许连接,无应用层数据.

( SYN=1 , ACK=1, seq=随机), ack = x+1 )
同步位只是用于确认连接请求的,ACK是确认位,

客户端为该TCP连接分配缓存和变量,并且向服务器返回确认的确认,可以携带数据(应用层数据)

SYN=0,ACK=1,seq=x+1,ack=y+1 (期望收到y+1)

SYN洪泛攻击

在这里插入图片描述

不停的 发请求连接 数据包,服务器不停的 返回ACK 给攻击者确认,浪费服务器资源,如果攻击者对服务器发送非常大量的TCP连接,由于第一个请求都没有完成三次握手,

TCP连接的释放

参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源" (缓存和变量) 都将被释放。

在这里插入图片描述

转载地址:http://fquzi.baihongyu.com/

你可能感兴趣的文章
linux学习之shell中的${},##, %% , :- ,:+, ? 的使用
查看>>
Spring学习之Filter、Interceptor、Aop实现与区别
查看>>
Spring 添加@Autowired注释, 注入对象却为空
查看>>
springSecurity学习
查看>>
通过Java的api操作redis
查看>>
jquery基本选择器
查看>>
linux学习之shell字符串大小写转换
查看>>
Linux下用base64对字符串进行加密解密
查看>>
H5走迷宫小游戏
查看>>
mysql建表 表名与关键字冲突
查看>>
mysql 创建单表外键关联多表
查看>>
postman使用
查看>>
ClassNotFoundException和NoClassDefFoundError的区别
查看>>
Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化
查看>>
spring注解@Primary与@Qualifier
查看>>
annotation之@Autowired、@Inject、@Resource三者区别
查看>>
idea启动微服务找不到配置文件
查看>>
Java通过反射机制调用某个类的方法
查看>>
字节跳到面试题
查看>>
Linux查看物理CPU个数
查看>>