计算机网络:网络基础、TCP编程

一、计算机网络学习计划

1.网络基础 + tcp编程

2.udp编程

3.http + 小项目


4.服务器编程

5.数据库

6.html

7.在线商城

二、网络基础

(一)目的:实现不同主机进程间通信

(二)TCP/IP协议:实现不同硬件体系结构、不同软件间的通信

(三)IP地址:用来唯一的标识一台主机

  1. IPv4 地址 . . . . . . . . . . . . : 192.168.0.150

子网掩码 . . . . . . . . . . . . : 255.255.255.0

默认网关. . . . . . . . . . . . . : 192.168.0.1

2.IP = 网络号+主机号

3.IP本质为32位的数值,用点分十进制转换而来

3.子网掩码与IP地址相与来区分网络

4.www.baidu.com --DNS(域名解析)--> 183.2.172.17

|

V

子网掩码 255.255.255.0

|

V

是 不是

| |

发到局域网 发到外网

(四)通信分层

1.通信:物理链路、逻辑链路

2.三类分层

3.OSI模型(开放的系统互联模型)

7 应用层 //你好

6 表示层 //压缩 加密

5 会话层 //管理一次通信过程

4 传输层 //传输过程中网络信息 控制

3 网络层 //网络间如何通信

2 数据链路层 //01组合的数据帧

1 物理层 //物理通信 电气特性

4.OSI模型

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

4.2.数据链路层:①定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1②这一层传输的数据:帧数据 (按到一定格式组织起来的一组数据)

4.3.网络层:(路由器)①在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。 如:常见的路由器,就是这在一层工作。②这一层传递的数据:数据段(包)

4.4.传输层:transmit control ①定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。②常常把这一层数据叫做段。

4.5.会话层:①通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。 ②主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。如:上网,看视频。刷新 --- 好了!

4.6.表示层:①可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。②如有必要,表示层会通过使

用一种通格式来实现多种数据格式之间的转换。

4.7.应用层:①是最靠近用户的OSI层。②这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

三、socket

(一)socket

1.socket是网络通信的特殊文件

2.socket也是linux系统提供的一个编程接口 ,通过这个编程接口,就可以使用到linux的网络功能

3.socket函数

四、传输层的协议:TCP、UDP

(一)TCP

1.TCP(transmision control protocol):(类似 打电话)---可靠(1.连接 2.可靠传输 3.字节流)

①特点:

a.面向连接(就是在进行通信之前,必须建立好一条逻辑上的通路)

b.提供可靠传输(四个"无",无丢失,无失序,无差错,无重复)

②建立连接:

tcp三次握手 目的:建立连接

client ------------------ server

1 -- 我要通话 --> 1 //连接的请求

2 <--嗯,我知道了,你可以-- //对方接听电话 喂

3 -- 嗯,好的 --> //喂

③应用场合:

(1). 对可靠性要求较高场合

(2). QQ微信等 软件的登录时

2.TCP(即传输控制协议):①是一种面向连接的传输层协议,它能提供高可靠性通信(即数

据无误、数据无丢失、数据无失序、数据无重复到达的通信)

②适用情况:

a. 适合于对传输质量要求较高,以及传输大量数据的通信。

b. 在需要可靠数据传输的场合,通常使用TCP协议

c. MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

(二)UDP

1.UDP(User datagram Protocol):(类似 生活中的广播) (1.不可靠, 2.无连接 3.数据报)

① 特点:

a.不提供可靠传输,

b.在数据发送时,不需要建立连接

②应用:

(1).小数据,但是对速度要求较高(QQ.及时文本信息,语音等),实时性要求较高合!

(2).广播,组播 //电子教师(vnc --- 广播)

(3).无线网的传输 //udp

2.UDP(User Datagram Protocol)用户数据报协议:①是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

②适用情况:

a. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)

b. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)

c. 适合于广播/组播式通信中。

d. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

e. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

五、基于TCP和UDP网络编程

(一)通信模式

(二)TCP cs模型

(三)函数接口

1.connect(客户端)

端口号、配套函数:

①端口号:16位的整型数据

0~1023 //1024 ---知名端口号
//http -- 80
1024~50000 //特定端口号
50000~ //临时分配的端口号

②发送的用到的函数

大小端: 发送 --- 转换 --- 网络字节序 (大端)

接收 --- 根据主机的大小端转换

2.bind(服务器端)

3.accept(服务器端)

相关推荐
--运维实习生--1 分钟前
shell脚本第二阶段-----选择结构
linux·运维·shell编程
Clownseven17 分钟前
Linux服务器健康检查Shell脚本:一键生成自动化巡检报告
linux·服务器·自动化
时间裂缝里的猫-O-1 小时前
@Linux问题 :bash fork Cannot allocate memory 错误分析与解决方案
linux·chrome·bash
派拉软件1 小时前
微软AD国产化替换倒计时——不是选择题,而是生存题
网络·安全·microsoft·目录管理·微软ad替换·身份与访问控制管理iam
躺不平的小刘1 小时前
从YOLOv5到RKNN:零冲突转换YOLOv5模型至RK3588 NPU全指南
linux·python·嵌入式硬件·yolo·conda·pyqt·pip
愚昧之山绝望之谷开悟之坡1 小时前
| `cat /etc/os-release` | 发行版详细信息(如 Ubuntu、CentOS) |
linux·ubuntu·centos
mysla1 小时前
嵌入式学习day34-网络-tcp/udp
服务器·网络·学习
成富1 小时前
MCP 传输方式,stdio、HTTP SSE 和 Streamable HTTP
网络·网络协议·http
扶尔魔ocy2 小时前
【QT入门到晋级】进程间通信(IPC)-socket(包含性能优化案例)
网络
卓码软件测评2 小时前
软件测试:如何利用Burp Suite进行高效WEB安全测试
网络·安全·web安全·可用性测试·安全性测试