Linux网络编程|TCP编程

2023-09-15 23:17:40

 一.网络基础

1.1网络发展史

Internet-“冷战”的产物

      1957年10月和11月,前苏联先后有两颗“Sputnik”卫星上天

      1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称ARPA

      1968年6月DARPA提出“资源共享计算机网络” (Resource Sharing Computer Networks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即“阿帕网”,是Interne的最早雏形网络互联促成了TCP/IP协议的产生

      早期的ARPAnet使用网络控制协议(Network Control Protocol,NCP),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能

      1973年由Kahn和Vinton Cerf两人合作为ARPAnet开发了新的互联协议。        

      1974年12月两人正式发表第一份TCP协议详细说明,但此协议在有数据包丢失时不能有效的纠正

        TCP协议分成了两个不同的协议:

       用来检测网络传输中差错的传输控制协议TCP

      专门负责对不同网络进行互联的互联网协议IP

     从此,TCP/IP协议诞生

 1.2局域网和广域网

(1)局域网(LAN)

局域网的缩写是LAN,local area network,本地的网络,只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上,可以互相通信。局域网,就像是小区里的道路,分支多,连接了很多栋楼。

 (2)广域网(WAN)

广域网(Wide Area Network)是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。

 优点:

第一,通过因特网,只需要办一根宽带,就实现了通信,非常方便,现在的宽带价格也比较便宜。

第二,通过广域网专线。为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。

(3)光猫 

光猫是一种类似于数字调制解调器,接入的是光纤专线,是光信号。用于广域网中光电信号的转换和接口协议的转换,接入路由器,是广域网接入。一端连接运营商的入户线缆,一般是光纤,一端连接你自己的路由器。是一个运营商到你自己设备的桥梁。

(4)交换机和路由器 

交换机(数据链路层,依靠MAC地址):用于局域网内网的数据转发

路由器(网络层,需要IP寻址):用于连接局域网和外网,也能进行数据转发

TCP 

TCP(Transmission Control Protocol)是一种网络传输协议,它位于 OSI 模型的传输层。TCP 是一种面向连接、可靠的协议,它通过无差错的数据传输和按序交付确保数据的可靠性。

TCP 通过建立一个连接来进行通信,该连接由一个源IP地址和端口号和一个目标IP地址和端口号组成。在建立连接之前,客户端和服务器之间需要进行三次握手来协商通信参数和确认彼此的状态。

一旦建立连接,数据可以通过 TCP 在网络上进行传输。TCP 提供了流控制、拥塞控制和错误校验等机制,以确保数据在传输过程中不会丢失、损坏或乱序。TCP 也能够适应网络的拥塞情况,自动调整传输速率来保证网络的稳定性。

TCP 是一种面向字节流的协议,它将数据划分为一个个的数据包进行传输。每个数据包都有一个序列号,接收方根据序列号将数据包按序重组,确保数据的准确性。

总结来说,TCP 是一种可靠的、面向连接的传输协议,适用于需要可靠数据传输的应用场景,如文件传输、电子邮件、网页浏览等。

更多推荐

Learn Prompt-ChatGPT 精选案例:写作&博客

在ChatGPT的帮助下,文本内容的产出,尤其是撰写博客文章的过程得到了进一步的简化。你可以让ChatGPT激发你的灵感,也可以让它美化你的文章内容。这里我们希望能通过prompt写出一篇以“ChatGPT对社会各行各业的影响”为主题的博客。本页我们希望你可以使用ChatGPT网页版,利用ChatGPT写作的过程应该是

「聊设计模式」之模板方法模式(Template Method)

🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅!前言在软件开发中,设计模式是经典的解决方案,它们被广泛应用于面向对象的程序设计中。其中,模板方法模式(TemplateMethod)是一种常用的行为型设计模式,它定义一个操作中的算法骨架,而将一些步骤延迟

推进“数智+数治”,中期科技智慧公厕驱动城市公厕更新升级发展

随着城市化的快速发展和人口的不断增加,公共厕所这一基础设施的更新升级成为了亟待解决的问题。过去的传统公厕往往存在着环境脏乱差、无法保证使用者的舒适度等诸多问题。而智慧公厕则能够通过互联网和物联网的技术手段,实现智能化的运行管理,为市民提供更加便捷、舒适的使用体验。如中期科技「智慧公厕-智慧厕所」,拥有厕位智能监测与引导

【Python深度学习】深度学习框架Tensorflow、Pytorch介绍

深度学习已经成为了人工智能领域的一股重要力量,而深度学习框架则是在这个领域中进行研究和应用的必备工具。常见的深度学习框架包括TensorFlow、PyTorch、Keras、Theano和Caffe等,其中TensorFlow和PyTorch是最受欢迎的两个框架。本文将着重介绍这两个框架的优缺点以及应用领域。1.Ten

企业架构LNMP学习笔记40

框架配置实现读写分离:1)修改项目配置文件:return[//数据库类型'type'=>'mysql',//服务器地址//1、主从数据库的连接地址主在前从在后'hostname'=>'192.168.17.100,192.168.17.105',//2、主从数据库的名称、用户、密码一样的话,只配置一份即可。如果不一样,

算法通过村第七关-树(递归/二叉树遍历)白银笔记|递归实战

文章目录前言1.深入理解前中后序遍历从小到大递推分情况讨论,明确结束条件组合出完整的方法:从大到小画图推演总结前言提示:没有客观公正的记忆这回事,所有的记忆都是偏见,都是为自己的存活而重组过的经验。--国强生《断代》1.深入理解前中后序遍历深度优先遍历有前中后序三种情况,大部分人看过后就可以写出来,但是很多人只是记住了

在比特币上使用可检索性证明支付存储费用

我们为用户开发了一种为云存储付费的新方法。与亚马逊的S3等传统云存储相比,用户不必信任服务器。我们使用比特币智能合约来确保支付取决于服务器的可检索性证明(PoR),该证明只能在数据仍然可用且需要时可以检索的情况下生成。可检索性证明(PoR)许多人通过将他们的数据(如音乐、照片和文档)上传到远程服务器来外包存储,以确保可

mock技术在测试中的应用

技术简介mock技术又叫测试桩、挡板在软件测试中,对于一些不容易构造、获取的对象,用一个虚拟的对象来代替它,以达到相同的效果,这个虚拟的对象就是mock。mock技术并不是只有测试领域用,最早是在开发领域应用,典型例子:前后端联调。比如一个功能,前端功能写完了,但是后端还没做好,前端可以使用mock技术模拟后端发过来的

10:STM32------I2C通信

目录​​​​​​​一:I2C通信协议1:I2C简历2:硬件电路3:I2C时序基本单元A:开/终条件2:发送一个字节3:接收一个字节4:应答机制4:I2C时序1:指定地址写2:当前地址读3:指定地址读二:MPU60501:简历2:参数3:硬件电路4:框图5:寄存器地址三:案例A:软件I2C读写MPU60501:连接图2:

前端面试合集(三——浏览器)

浏览器的页面渲染1.浏览器是如何渲染页面的?2.什么是reflow(重排)?3.什么是repaint(重绘)?4.为什么transform效率高?1.浏览器是如何渲染页面的?当浏览器的网络线程收到HTML文档之后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。在事件循环机制的作用下,渲染主线程取出消息队列中的渲

005-第一代光电小工具(一)

第一代光电小工具(一)文章目录第一代光电小工具(一)项目介绍大致原理描述核心控件QCustomPlot关于QCustomPlot播放音频软件截图关键字:Qt、Qml、QCustomPlot、曲线、SQLite项目介绍欢迎来到我们的QML&C++项目!这个项目结合了QML(QtMeta-ObjectLanguage)和C

热文推荐