首页
学习
活动
专区
圈层
工具
发布

【Linux】: 传输层协议 TCP

一、前言 之前在这篇文章 传输层协议 UDP 中已经说过关于传输层的部分内容,现在我们来了解一下传输层 TCP 的内容吧 ‍ TCP 全称为 "传输控制协议( Transmission Control...TCP 协议段格式 理解TCP的报头: Linux 内核是C语言写的,在 UDP 说过报头是协议的表现,而协议本质就是结构体数据。所有 tcp报头 就是一个结构化或位段。...原因在于它们之间的距离很近,不存在网络传输中的可靠性问题 网络传输中的不可靠性场景 为什么网络传输时会存在不可靠的问题? 原因:传输距离变长了 常见的不可靠场景有哪些?...Linux 中 ( BSD Unix 和 Windows 也是如此), 超时以 500ms 为一个单位进行控制, 每次判定超时重发的超时时间都是 500ms 的整数倍....ACK,服务器端就会重发 FIN 报文,重发次数仍然由 tcp_orphan_retries 参数控制,这与客户端重发 FIN 报文的重传次数控制方式是一样的 ④ 第四次挥手失败,发生如下:  在 Linux

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux】:传输层协议 UDP

    一、前言 之前在这篇文章 初识网络 中说过关于传输层的内容,以及在 Socket编程应用层UDP 也做过关于 UDP 的练习,如下: 传输层: 负责两台主机之间的数据传输。...如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机,负责数据能够从发送端传输接收端 二、再谈端口号 端口号(Port) 标识了一个主机上进行通信的不同的应用程序 在 TCP/IP...UDP 特点 UDP 传输的过程类似于寄信: 无连接: 知道对端的 IP 和端口号就直接进行传输, 不需要建立连接; 不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方,UDP...调用 sendto 会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作; UDP 具有接收缓冲区....如果我们需要传输的数据超过 64K,就需要在应用层手动的分包,多次发送,并在接收端手动拼装; 6.

    1.1K10

    Linux 温习(七): 文件传输

    # 把 file.txt 拷贝到我的电脑中当前文件夹下,并改名 scp root@192.168.1.5:/root/file.txt file_change_name.txt ftp & sftp 传输文件...FTP是 File Transfer Protocol 的缩写,表示“文件传输协议”,FTP协议已经有些年纪了,1985年诞生,FTP 现在仍然是传输文件的最常用协议。...对于公共的FTP服务器,用户名( Name )一般都填写 anonymous 在 FTP 服务器中操作 ls :列出当前目录的文件 pwd :显示当前目录的路径 cd∶转换目录 用 FTP 进行文件传输...服务器断开连接,你可以用 Ctrl +D 组合键,也可以用 bye, exit 或 quit 命令,效果是一样的 sftp:安全加密的 ftp ftp 命令虽然方便,但是有一个致命缺点:不安全,数据不是加密传输的...sftp 和 ftp 命令类似,但是它用了 SSH 协议,所以传输的信息是加密的 rsync 命令可以同步同一台电脑或两台不同电脑上的两个文件(夹)的内容,rsync 命令来备份文件特别方便。

    3.4K30

    【Linux网络】网络传输基本流程

    提供通用能力,而非特定功能:TCP/IP协议栈本身并不关心你传输的数据是电子邮件、网页还是视频流。它只是提供了传输(TCP/UDP) 和寻址(IP) 这两种最基础、最通用的能力。...互通(Inter-operation):TCP/UDP协议确保了不同操作系统(Windows, Linux, macOS)上的不同应用程序,能够基于相同的规则理解彼此发送的数据流。 2....1.3 TCP/IP协议与操作系统的关系(宏观上,怎么实现的) 两个不同的主机(操作系统不同,可能你是Linux,对方是Windows)远距离通信时,你们俩都不是一个结构的,实现方式都不同,怎么能通信呢...Linux/macOS:在终端中使用 ifconfig 或 ip addr show 命令。...数据传输的分层流程(以用户A发送“你好”为例) 应用层:用户A的应用层产生“你好”这一数据,交付给传输层; 传输层:传输层对数据进行封装(如添加源/目的端口信息),交付给网络层; 网络层:

    14410

    【Linux网络编程】传输协议UDP

    协议号:用于标识协议类型的字段,通常用于区分不同的传输层协议。例如,TCP 使用协议号 6,UDP 使用协议号 17。...知名端口号 ssh 服务器, 使用 22 端口 ftp 服务器, 使用 21 端口 telnet 服务器, 使用 23 端口 http 服务器, 使用 80 端口 https 服务器, 使用 443 在Linux...理解端口号和进程的关系 进程在Linux内核中实际上是一个struct task_struct,这就是描述进程的一个结构体。...调用 sendto 会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作; UDP 具有接收缓冲区....也就是说一个 UDP 能传输的数据最大长度是 64K(包含 UDP 首部)。如果我们需要传输的数据超过 64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装。

    95210

    Linux文件传输FTP详解

    ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易...连接ftp服务器 格式:ftp [hostname| ip-address] a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码...如果要除掉提示,则在mget *.* 命令前先执行:prompt off 注意:文件都下载到了linux主机的当前目录下。...比如,在 /usr/my下运行的ftp命令,则只有在/usr/my下的文件linux才会上传到服务器/usr/your 下。 4. 断开连接 bye:中断与服务器的连接。...每当开始传输文件时,客户端程序会打开一个新的数据端口,在文件传输完毕后,再自动释放该端口。

    9.4K32

    初识Linux · 传输层协议UDP

    那么在Linux内核中,进程和port的映射是通过一张哈希表来完成的,问题来了: 1.端口号是否可以被多个进程bind? 2.一个进程是否可以bind多个端口号?...UDP协议 在我们理解上面这张图片之前, 我们回想一个知识点,在最开始引入网络编程的时候,我们花了一番功夫认识了协议是什么,我们仅仅是基于Linux网络编程的特点,认为协议就是通信双方都认识的结构体,那么在今天...对于UDP协议来说,它的特点是无连接,不可靠传输,面向数据报。...,TCP协议是要求进行connect,客户端和服务器进行连接,没问题再进行下一步操作,对于UDP协议来说,它只需要创建好套接字,然后填充对应的服务器信息,最后bind,bind完管你连接不连接呢,直接传输了就开始...对于不可靠传输,因为UDP一旦传输失败,它什么也不管,也不会进行重传,这点和TCP有很大的区别,TCP有多种方案应付传输失败的情况,比如超时重传等。

    41510

    【Linux网络】传输层协议UDP

    传输层 “负责数据能够从发送端传输到接收端” 是传输层最核心、最根本的任务。 网络层 负责的是 “主机到主机” 的通信(比如,你的电脑到一台遥远的服务器)。它只关心把数据包送到目标IP地址。...传输层要确保浏览器的数据交给服务器的Web服务,而不是别的。 如何实现?—— 通过端口号 1.1 再谈端口号 传输层使用 端口号 来标识主机上的不同应用程序。...端口 21 用于控制连接(传输命令)。 另一个随机或指定的端口(如 20)用于数据连接(传输文件内容)。...SO_REUSEPORT(Linux 3.9+ 引入):明确设计用于允许多个进程(或线程)绑定到完全相同的 IP 地址和端口号。...这就是为什么在需要可靠传输时,我们通常使用TCP,或者使用基于UDP的可靠传输协议(如QUIC)的原因。

    11810

    linux mail发送邮件_shell传输文件

    Linux发邮件之mail命令详解 发布于 2017-01-05 16:44:04 | 154 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一套免费使用和自由传播的类Unix操作系统...这篇文章主要介绍了Linux发邮件之mail命令详解,详细的讲解了mail命令的用法等,非常具有实用价值,需要的朋友可以参考下。...相关阅读: Linux发邮件之mail命令详解 Linux监视进程之ps命令详解 Linux查看命令之od命令详解 Linux中文本处理工具之sort命令详解 linux拷贝命令之高级拷贝scp命令详解...linux命令详解之rpm命令参数使用方法 Linux命令详解之less命令 linux top命令详解 Linux进程管理命令详解 Linux chage命令详解 linux curl命令详解及实例分享...linux系统sudo命令详解 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    9.6K20

    shell 加密传输 | Linux后门系列

    之前提到的所有的反弹shell的方法都有一个共同的缺点:明文传输 我们传输的命令不被安全软件拦截才怪 本来我是打算base64编码进行测试的,但是失败了,这里有个问题需要以后去深究,这里仅仅抛出来 nc...所以暂时放弃用管道符来加密nc了 【 openssl 】 ubuntu 16.04 默认自带 openssl ,我们可以使用 openssl 来加密我们的流量,我只是了解 https 工作流程,如何打包,如何传输...可以看到使用了 TLSv1.2 传输,加密效果应该是杠杠的!...tmp/f 反弹shell过程中,目标主机上生成的公私钥文件传到攻击机后记得删掉,避免多余的麻烦 上面的都是看了网上文章总结出的方法,不过我隐隐约约觉得哪里不对劲,我为什么要在目标主机上生成公私钥再传输到攻击机上...可以看到,传输采用的也是 TLSv1.2

    2.2K10

    初识Linux · 传输层协议TCP · 下

    确定了对方的接收缓冲区的大小,就是如何进行报文传输控制了,那么对于流量控制来说,滑动窗口就是它的核心机制之一。...keepalives) */ u32 lsndtime; /* timestamp of last sent data packet (for restart window) */ 这是滑动窗口在Linux...也就是说返回的是2001 3001 5001,其中丢了某个应答,是完全没有关系的,因为TCP的可靠传输。...但是可以很负责任的说,不考虑拥塞窗口的传输都是耍流氓,你别看别人的接受能力那么强你就使劲发报文,比如两个地点,中间有一条马路,A点可以放100辆车,那么你难道就知道整100辆车过去吗?...以上的图我们看到的是拥塞避免算法AIMD的核心框架,实际上最后拥塞窗口的值会处于一个带宽的某个极限值震荡,以保证通信的稳定传输。 有个问题就是,我们如何确认是网络拥塞了呢?

    35010

    linux之scp命令文件传输

    大家好,又见面了,我是你们的朋友全栈君 第一章 linux之帮助命令 第二章 linux命令行快捷键 第三章 linux之防火墙 第四章 linux之服务开机自启 第五章 linux...之关机与重启 第六章 linux之环境变量 第七章 linux之目录操作命令 第八章 linux之目录结构 第九章 linux之使用ssh连接被拒 第十章 linux之搜索命令 第十一章 linux...之统计命令 第十二章 linux之网络命令 第十三章 linux之文件操作命令 第十四章 linux之文件系统命令 第十五章 linux之压缩解压缩 第十六章 linux之用户管理 第十七章...linux之权限管理命令 第十八章 linux之scp命令文件传输 ---- 文章目录 scp命令 ---- 原文链接 https://zhhll.icu/2021/linux/基础/scp命令

    3.3K30
    领券