Linux网络编程1——网络编程基础

学习视频连接

黑马程序员-Linux网络编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1iJ411S7UA?p=11

目录

一、协议

二、分层模型结构

2.1 OSI七层模型

2.2 TCP/IP 4层模型

三、网络传输数据封装

3.1 物理层

3.2 数据链路层

3.3 网络层

3.4 传输层

四、以太网帧协议

4.1 ARP协议

4.2 以太网帧协议

4.3 mac地址

五、 IP协议

5.1 版本

5.2 TTL

5.3 IP字节数

5.4 发送的内容

六、IP、端口号

6.1 IP地址

6.2 端口号

6.3 ip+端口号

七、UDP和TCP数据报格式

7.1 UDP

7.2 TCP

八、CS/BS模型

九、TCP协议

9.1 TCP通信时序 

9.2 滑动窗口


一、协议

一组规则,例如世界语

二、分层模型结构

2.1 OSI七层模型

物、数、网、传、会、表、应

2.2 TCP/IP 4层模型

4层模型:网(链路层 / 网络接口层)、网、传、应

应用层:http、ftp、 nfs、ssh、 telnet

传输层:TCP、 UDP

网络层:IP、ICMP、 IGMP

链路层:以太网帧协议、ARP

三、网络传输数据封装

3.1 物理层

主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后再转化为 1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特

3.2 数据链路层

定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输

3.3 网络层

在位干不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet 的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层

3.4 传输层

定义了一些传输数据的协议和端口号

四、以太网帧协议

4.1 ARP协议

根据 Ip 获取 mac 地址

4.2 以太网帧协议

根据 mac 地址,完成数据包传输

4.3 mac地址

唯一标识了一个网卡,所有网卡的 mac 地址是不一样的

五、 IP协议

5.1 版本

IPv4、IPv6

5.2 TTL

time to live,设置数据包再路由结点中的跳转上限。每经过一个路由结点,该值 -1,减少为 0 的路由有义务将该数据包丢弃。

下图中没有通路到目标主机,数据包只能在各个路由之间来回转发

5.3 IP字节数

源IP:32位 —— 4字节  (192.168.1.123)0~255.0~255.0~255.0~255

目的IP:32位 —— 4字节

5.4 发送的内容

16位:源端口号  2^ 16 = 65536

16位:目的端口号

32序号

32确认序号

6个标志位

16位窗口大小  2^ 16 = 65536

六、IP、端口号

6.1 IP地址

可以在网络环境中,唯一标识一台主机

6.2 端口号

可以网络的一台主机上,唯一表示一个进程

每个应用都有自己的端口号,数据包包含端口号用来告诉系统传过来的数据是给哪个软件的

6.3 ip+端口号

可以在网络环境中,唯一表示一个进程

七、UDP和TCP数据报格式

7.1 UDP

16位 源端口号

16位 目的端口号

7.2 TCP

八、CS/BS模型

九、TCP协议

9.1 TCP通信时序 

下图是一次 TCP 通讯的时序图。TCP 连接建立断开。包含大家熟知的三次握手和四次握手

 SOCK_STREAM与SOCK_DGRAM套接字 - 简书 (jianshu.com)https://www.jianshu.com/p/046f37121259

不进行三次握手的传输是不可靠传输,以包的形式发送,过程中有的包会丢失,应用于视频或者音频有一部分损失,但不影响整体。进行三次握手的传输是可靠传输,四次握手,最后一次是用来断开连接(半关闭)

1、三次握手

主动发起连接请求端,发送 SYN 标志位,请求建立连接。携带序号号、 数据字节数(0)、滑动窗口大小

被动接受连接请求端,发送 ACK 标志位,同时携带 SYN 请求标志位。携带序号、确认序号、数据字节数(0)、滑动窗口大小

主动发起连接请求端,发送 ACK 标志位,应答服务器连接请求。携带确认序号

2、四次挥手

主动关闭连接请求端,发送 FIN 标志位

被动关闭连接请求端,应答 ACK 标志位    —— 半关闭完成

被动关闭连接请求端,发送 FIN 标志位

主动关闭连接请求端,应答 ACK 标志位    —— 连接全部关闭

9.2 滑动窗口

客户端发送数据很快,服务端处理数据很慢,存储客户端数据的缓冲区很快就满了。

为了防止数据丢失,一直发送服务器剩余缓冲区的大小,即划动窗口的大小

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

herb.dr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值