计算机网络知识整理

OSI七层

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
物理层涉及信道上传输的比特流。
数据链路层的主要任务是加强物理层传输原始比特流的功能,是指对应的网路层显现为一条无错线路。发送包把数据封装在数据帧,按顺序传送出去并处理接收方会送的确认帧。
网络层关系到子网的运行控制,其中一个关键问题是确认从源端到目的算如何选择路由。
传输层的基本功能是从会话层接收数据而且把其分成较小的单元传递给网络层。
会话层允许不同机器上的用户建立会话关系。
表示层用来完成某些特定的功能。
应用层包含着大量人们普遍需要的协议。

TCP和UDP

TCP是传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须现在双方,之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发、丢弃重读数据、检验数据、流量控制等功能,保证数据能从一端传到另一端。
UDP是用户数据报协议,是一个简单地面向数据报的运输协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不保证它们能够到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度快。
TCP就像是打电话,两者之间必须有一条不间断的通路,数据不到达对方,对方就一直在等待,除非对方直接挂电话。先说的话先到,后说的话后到,有顺序。
UDP就像寄一封信,发现者只管发,不管到。但是你的新风尚必须写明对方的资质。发现者和收信者之间没有通路,靠邮电局联系。信发到时可能已经过了很久,也可能根本没有发到。先发的信未必先到,后发的信也未必后到。

Socket套接字

Socket相当于进行网络通信两端的插座,只要对方的Socket和自己的Socket有通信联接,双方就可以发送和接收数据了。其定义类似于文件句柄的定义。如果你要编写的是一个服务程序,那么先调用socket()创建一个套接字,调用bind()绑定IP地址和端口号,然后启动一个死循环,循环中调用accept()接受连接。对于每个接受的链接,可以启动多线程方式进行处理,在线程中调用send()、recv()发送和接收数据。
如果要编写的是一个客户端程序,那么久简单多了,先调用socket()创建一个套接字,然后调用connect()链接服务器,之后就是调用send()、recv()发送和接受数据了。
服务器端程序编写:
1. 调用ServerSocket(int port)创建一个服务器端套接字,并绑定到制定端口上。
2. 调用accept(),监听连接请求,则接收连接,返回通信套接字
3. 调用Socket类的getOutStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收
4. **关闭通信套接字**Socket.close()。
客户端程序编写:
1. 调用Socket()创建一个流套接字,并连接到服务器端
2. 调用Socket类的getOutStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收
3. **关闭通信套接字**Socket.close()。

TCP三次握手四次握手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用3次握手建立一个连接。
第1次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。
第2次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第3次握手:客户端和服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此时发送完毕,客户端和服务器进入ESTABLISHED状态,完成3次握手。
完成3次握手,客户端与服务器开始传送数据。在上述过程中,还有一些概念。
未连接队列:在3次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待的客户的确认包。这些条目所标识的链接在服务器处于Syn_RECV状态,当服务器收到客户的确认保湿,删除该条目,服务器进入ESTABLISHED状态。
Backlog参数:标识未连接队列的最大容纳数目。
SYN-ACK重传次数:服务器发送完SYN_ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次冲床,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。
半连接存活时间:是指半连接队列的条目存活的最长时间,即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是左右重传请求包的最长等待时间总和。有时我们也成办理按揭存活时间为Timeout时间、SYN_RECV存活时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吸水间最低动水位标高_体验长安逸动EV460:再也不用为电动车续驶里程焦虑了...

文| 车突突车图腾出品,未经许可,谢绝转载● ● ●人们都在期待碧水蓝天,而且越来越多的消费者也开始践行环保理念,在买车时关注起了纯电动汽车。不过遗憾的是,纯电动汽车目前还没能成为主流。一方面,是因为…

java开发工具包jdk包括哪些

害怕干不过SpringBoot?莫慌,我送你套神级pdf文档 随着 Spring Boot 使用越来越广泛,Spring Boot 已经成为 Java 程序员面试的知识点,很多同学对 Spring Boot 理解不是那么深刻,经常就会被几个连环追问就给干趴下了&am…

微信计步器怎么不计步_难以关闭的微信朋友圈广告

太难关掉了。”试图关闭朋友圈广告的小曾,在对照着腾讯视频上的一个长达6分钟的视频演示之后,通过14次操作才得以关闭。这14步操作具体如下:点击“我”—点击“设置”—点击“关于微信”—点击“微信隐私保护指引”—下拉两个屏幕的面积—点击…

java开发工具有哪些

前言 Netty 是一款基于 Java 的网络编程框架,能为应用程序管理复杂的网络编程、多线程处理以及并发。Netty 隐藏了样板和底层代码,让业务逻辑保持分离,更加易于复用。使用 Netty 可以得到一个易于使用的 API,让开发人员可以专注自…

经典冒泡排序及其优化

经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似…

expdp导出 schema_记录一则expdp任务异常处理案例

在XTTS迁移测试阶段,遇到执行几个expdp的导出任务,迟迟没有返回任何信息,对应日志无任何输出。环境:AIX 6.1 Oracle 10.2.0.4现象:在XTTS迁移测试阶段,遇到执行几个expdp的导出任务,迟迟没有返…

java开发工具软件排行榜

前言: 都说学历是敲门砖,是一点都没错,即使是在重技术轻学历的互联网企业,面试官对于学历越高的程序员初印象会更好,面试也会更顺利,而大部分专科学历的程序员,除非有过硬的技术,否…

简单选择排序算法

简单选择排序思想:首先,找到数组中最小的元素,其次,将它和数组第一个元素交换位置;再次,在剩下的元素中找到最小的元素,将它与数组中的第二个元素交换。如此亡故,直到将整个数组排序…

java开发工程师工作内容怎么写

什么是分布式锁?在回答这个问题之前,我们先回答一下什么是锁。 普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个…

community 计算模块度_光模块深度:国内光模块企业快速崛起

一、核心观点二、发展追溯:技术是底蕴、创新是动力1 光通信发展:技术迭代加快,国产替代是前进的方向依据摩尔定律,光模块的小型化、低成本以及高速率是产品迭代的主要方向。2 竞争格局:市场集中度高,巨头地位稳固,国内厂商稳步崛起…

java开发工程师的自我评价

前言 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。 我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不…

华为魔术手机拆机图解_华为P9进水不显示维修案例

看点:iPhone X原装屏与国产屏有哪些区别?看点:换7P、8P屏幕:C11和DTP和DKH的区别狮淘:华人手机维修师专属工具集合店,不锈钢拆机片5个只需9.9元!包邮山猫潮品:手机渠道直供&#xff…

java开发工程师自我介绍文本

前言 每年金三银四,金九银十之际,想进阶梦想挑战大厂的朋友层出不穷。 梦想是要有的,万一就实现了呢?且撇开大牛们不说,每年面试之时问题也层出不穷,不得不说,每年被算法绝杀的朋友也是不在少数…

面向对象技术

面向对象和面向过程的区别 出发点不同。 面向对象强调问题域的要领直接映射到对象和对象之间的接口上,是用符合常规思维的方式来处理客观世界的问题。 面向过程方法强调的则是过程的抽象化和模块化,是以过程为中心构造或处理客观世界问题的。层次逻辑…

ad09只在一定范围内查找相似对象_23、面向对象编程

目录:对象的概念类与对象面向对象编程类的定义与实例化属性访问类属性与对象属性属性查找顺序与绑定方法小结视频链接一 对象的概念”面向对象“的核心是“对象”二字,而对象的精髓在于“整合“,什么意思?所有的程序都是由”数据”…

java开发工程师转行可以做什么

前言 分布式事务主要解决分布式一致性的问题。说到底就是数据的分布式操作导致仅依靠本地事务无法保证原子性。与单机版的事务不同的是,单机是把多个命令打包成一个统一处理,分布式事务是将多个机器上执行的命令打包成一个命令统一处理。 MySQL 提供了…

atlas怎么看日志_亿级的日志治理!微服务最佳方案,ELK stack从零搭建

ELK Stack 诞生背景一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理…

Java变量类型

所有的变量在使用前必须声明。 type identifier [ value][, identifier [ value] ...] ; 格式说明:type是数据类型,identifier是变量名,可以使用逗号隔开来声明多个同类型变量。 一下列出一些变量的声明实例,有些包含了初始化过…

java开发工程师面试问题大全及答案大全

前言 Alibaba作为国内互联网行业的“老大”,一直以来也是很多“数码宝贝”梦寐以求的公司,我个人是做Java开发的,阿里这些年也开发了很多屌炸天的开源项目,像什么Spring Cloud Alibaba,开源Java诊断工具Arthas&#x…

me shy是什么歌 抖音make_内含活动福利 | 小红书、抖音爆赞的高颜值的北欧家居神店开到卜蜂中心啦!...

几个月前,一家北欧范颜值爆表的瑞典独立设计师品牌家居店凭借其充满设计感的产品刷爆社交媒体微博、小红书、抖音经常出现它的身影随便一篇阅读量、收藏量都好几万数不清的爆like让人按耐不住了!这个品牌叫NǑME家居(认住这个正版的Ǒ),开到哪…