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

  • A+
所属分类:Linux

学习视频连接

黑马程序员-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通信时序 


一、协议

一组规则,例如世界语

二、分层模型结构

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)Linux网络编程1——网络编程基础https://www.jianshu.com/p/046f37121259

w3cjava