问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

面试android的时候面试官提问"对网络通信协议熟悉吗?对socket和http了解...

发布网友 发布时间:2024-05-07 03:44

我来回答

3个回答

热心网友 时间:2024-06-02 05:37

我学网络专业,对网络通信协议还是比较熟悉的,“先讲下7层协议,然后从7层协议中引出socket和http”
套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个
TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
HTTP协议即超文本传送协议(Hypertext Transfer Protocol
),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

2)在HTTP
1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致
Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

热心网友 时间:2024-06-02 05:36

就把你知道的告诉面试官,在这里给你编好了针对这个问题的,下面面试官让你展开下某个点,你要是不理解还是展不开,所以面试一定要基于自己理解的会的基础上,瞎编乱造使不得

热心网友 时间:2024-06-02 05:38

1, 网络通信协议为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。目前,局域网中常用的通信协议主要有:NetBEUI协议、IPX/SPX兼容协议和TCP/IP协议。

2,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

3,http   超文本传输协议

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
珍珠粉可以天天敷脸吗 教你自制珍珠粉面膜 中超什么时候成立 交通刷卡金是什么 哪吒V上市进入倒计时,车身超4米,轴距为2420mm,续航里程401km. 关于倩女幽魂爆鬼问题 倩女幽魂什么是大宝队 关于倩女幽魂爆鬼分红的问题 泰国绿咖喱中的咖喱酱是如何制作的,它的独特口味来源于哪些香料?_百度... 好看电视剧,推荐个,现代都市剧,古装剧,战争爱情剧都可以,要经典,确确 ... 去北京上大学转户口好不好 陈丽君出息了!爆红后出演首部电影,挑战汉文皇后弟弟,造型好看吗?_百度... 上班的时候不小心手腕扭伤了不能上班算不算工伤医疗费用是自己出吗 女生网名是啥意思? 痞爷网名意思 微信昵称啥意思? 梅大佛爷 可以用来做网名吗? 理论到落地 | 一文了解Feed流 鼻塞会引发肺炎吗 风湿骨刺王多少钱一盒5 黑龙江省健博生物科技有限公司怎么样? 临海市健博贸易有限公司怎么样? 河南博健电子产品有限公司怎么样? 绍兴昌安附近晚上哪里可以打篮球?要有灯光的。。 猪肝煮多长时间能熟 猪肝煮多久能熟 猪肝煮多长时间熟猪肝煮多长时间合适 原永飞用行书写怎么写好看 李洪燕这个名字怎么写好看 EXCEL怎么做同比增长的函数excel怎么做同比增长的函数图 MYLY这是什么意思? 油笔油怎么去除小妙招 赵云在《三国志》中只是记载七年卒,并没细致的交待 ...我想要具体的公交路线,请介绍个比较简单易行的方法 我家房门开关时候老发出"吱吱"的响声,怎么解决啊? 辣椒酱是自做好还是去超市买好 辣椒酱的做法是什么 自做辣椒酱的做法自做辣椒酱的做法是什么 自做蒸辣椒酱的方法蒸辣椒酱怎么做 用自家种的辣椒怎样做出好吃的辣酱? 二战日本赤诚号航空母舰打仗装了多少架战斗机 请教"插头"和"插座"用英文怎么说? 喜欢一个人到有点"病态"的程度那是什么样的? 广州职工医保怎么办理? 吃了减肥药就身上有一种味道尿出来也是这种特浓的酸味道是什么情况_百 ... 重庆三峡学院各专业录取是否有身体要求? 如何对存货进行成本核算? “照相知”是什么意思? 贵字几画? 世家好太太是品牌吗 消毒柜 高630 宽600 长445 要在整体厨柜上开多大的孔 哪款软件打电话不花钱 龙门石窟凭学生证可以半价,我是农村学生没有身份证怎么半?