news 2026/4/18 3:27:25

网络编程入门:从IP到TCP全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络编程入门:从IP到TCP全解析

一、引言

昨天讲了闭包与装饰器,今天给大家讲一下网络编程.

二、计算机网络概述

1.网络的概念

网络就是将具有独立功能的多台计算机通过通信线路和通信设备连接起来,在网络管理软件及网络通信协议下,实现资源共享和信息传递的虚拟平台。

2.为什么要学网络

学习网络的目的就是能够编写基于网络通信的软件或程序,通常来说就是网络编程。

3.ip地址概述

思考一个问题,当我们在计算机中使用微信和朋友聊天时,信息是如何精准的传递到他的计算机中的呢?

3.1 IP地址的作用

通过IP地址找到网络中唯一一台设备,然后可以跟这个设备进行数据通信。所以我们就可以回答上面的问题了:

是通过计算机的IP地址来实现的,IP地址是分配给网络设备上网使用的数字标签,它能够标识网络中唯一的一台设备,好比现实中每个人都有一个手机号。

3.2 IP地址的表现形式

IP地址一共有4位,第1位,1~223,第234位,0~255

注意事项:

① IP地址分为两类 : IPv4和IPv6

② IPv4是目前使用的IP地址

③ IPv6是未来使用的IP地址

4.端口和端口号的概念

4.1计算机通信原理

首先我们提出一个问题:如果在一台电脑上使用飞秋给另外一台电脑上的飞秋发送数据并且另外的这台电脑还运行着多个软件,它是如何区分这多个软件把数据给飞秋的呢?

其实,每运行一个程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可。端口就是传输数据的通道,好比教室的门,是数据传输必经之路。

而且每一个端口都会有一个对应的端口号(操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号其实就是一个数字,好比我们现实生活中的门牌号),想要找到端口通过端口号即可,如:飞秋软件的默认端口号就是2345。

最终通信结果:通过ip地址找到对应的设备,通过端口号找到对应的端口,然后通过端口把数据给应用程序。

4.2端口号扩展

4.2.1知名端口号

知名端口号是指众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,22端口分配给SSH(安全外壳协议,主要用于远程连接与文件传输),25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,443端口分配给HTTPS服务等等。

4.2.2动态端口号

一般程序员开发应用程序使用端口号称为动态端口号。

动态端口号的范围是从1024到65535,如果程序员开发的程序没有设置端口号,操作系统会在动态端口号这个范围内随机生成一个给开发的应用程序使用。

注意:当运行一个程序默认会有一个端口号,当程序退出时,所占用的这个端口号就会被释放。

设置端口建议8000以后

5.TCP协议概述

之前我们学习了IP地址和端口号,通过IP地址能够找到对应的设备,然后再通过端口号找到对应的端口,再通过端口把数据传输给应用程序,这里要注意,数据不能随便发送,在发送之前还要选择网络传输方式(传输协议),保证程序之间按照指定的传输规则进行数据的通信。

5.1TCP概述

TCP的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。

TCP通信步骤:① 创建连接 ② 传输数据 ③ 关闭连接

TCP通信模型相当于生活中的’打电话‘,在通信开始之前,一定要先建立好连接,才能发送数据,通信结束要关闭连接。

5.2TCP的特点

5.2.1面向连接

通信双方必须先建立好连接才能进行数据的传输,并且双方都会为此连接分配必要资源用来记录连接的状态和信息。当数据传输完成后,双方必须断开此连接,以释放系统资源。

5.2.2可靠传输

TCP采用发送应答机制:

通过TCP这种方式发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传送成功

超时重传:

发送端发送一个报文之后就会启动定时器,如果指定时间内没有得到应答就会重新发送这个报文段

错误校验:

TCP用一个校验和函数来校验数据是否有错误,在发送和接收时都要计算校验

流量控制和阻塞管理:

流量控制用来避免发送端发送过快而使得接收方来不及接收

三、结语

今天概念类的东西比较多,大家可以多看一下,明天会讲一些编码转换的知识点.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:26:53

基于Java的安全生产投诉智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ?安全生产投诉智慧管理系统结合了会员管理、投诉处理等17个模块,旨在提升企业安全管理效率。与传统选题相比,本系统功能更全面、创新性强且实用性高。不仅涵盖传统的事故管理、培训管理和设备维护记录管理&#xff0c…

作者头像 李华
网站建设 2026/4/17 8:03:14

LangChain RAG-递归文档树检索实施高级RAG优化理解

01. RAPTOR 递归文档树策略 在传统的 RAG 中,我们通常依靠检索短的连续文本块来进行检索。但是,当我们处理的是长上下文时,我们就不能仅仅将文档分块嵌入到其中,或者仅仅使用上下文填充所有文档。相反,我们希望为 LLM…

作者头像 李华
网站建设 2026/4/17 14:08:09

MySQL数据库迁移脚本及使用说明

脚本源码 #!/bin/bash# 数据库迁移脚本 - 导出MySQL数据库并导入到新机器 # 支持可配置的数据库列表和目标服务器IP地址# 默认配置 SOURCE_HOST"127.0.0.1" SOURCE_USER"user" SOURCE_PASS"password" TARGET_HOST"127.0.0.1" TARGET_…

作者头像 李华
网站建设 2026/4/14 1:07:08

什么是GPU

现代机器学习GPU(例如H100、B200)基本上是由多个专门用于矩阵乘法的计算核心(称为流式多处理器或SM)连接到一块高速内存条(称为HBM)组成。下图所示: 图: H100 或 B200 GPU 的抽象布…

作者头像 李华