没有合适的资源?快使用搜索试试~ 我知道了~
HTTP 60 道面试题及答案.docx
资源推荐
资源详情
资源评论
什么是网络编程
网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设
备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基
于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。在
网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程
序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻
相应连接,则需要一直启动。
例如以打电话为例,首先拨号的人类似于客户端,接听电话的人必须保持电话畅通类似于服务器。
连接一旦建立以后,就客户端和服务器端就可以进行数据传递了,而且两者的身份是等价的。在
一些程序中,程序既有客户端功能也有服务器端功能,最常见的软件就是 QQ、微信这类软件了。
网络编程中两个主要的问题
1、一个是如何准确的定位网络上一台或多台主机,
2、另一个就是找到主机后如何可靠高效的进行数据传输。
在 TCP/IP 协议中 IP 层主要负责网络主机的定位,数据传输的路由,由 IP 地址可以唯一地确定
Internet 上的一台主机。
而 TCP 层则提供面向应用的可靠(TCP)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对
象,一般不需要关心 IP 层是如何处理数据的。
目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提
出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,
监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务
端口,使后来的客户也能及时得到服务。
网络协议是什么
在计算机网络要做到井井有条的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的
格式、是否需要发送一个应答信息。这些规则被称为网络协议。
为什么要对网络协议分层
简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。
灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。
易于实现和维护。
促进标准化工作。分开后,每层功能可以相对简单地被描述
计算机网络体系结构
OSI 参考模型
OSI (Open System Interconnect),即开放式系统互联。一般都叫 OSI 参考模型,是 ISO(国际标准化组
织)组织在 1985 年研究的网络互连模型。ISO 为了更好的使网络应用更为普及,推出了 OSI 参考模
型,这样所有的公司都按照统一的标准来指定自己的网络,就可以互通互联了。
OSI 定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用
层)。
TCP/IP 参考模型
TCP/IP 四层协议(数据链路层、网络层、传输层、应用层)
1、应用层应用层最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络
服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,TELNET 等。
2、传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据
传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高
层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据
通路。我们通常说的,TCP UDP 就是在这一层。端口号既是这里的“端”。
3、网络层本层通过 IP 寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的
路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的 IP 层。这一层就是
我们经常说的 IP 协议层。IP 协议是 Internet 的基础。
4、数据链路层通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这
些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路,
什么是 TCP/IP 和 UDP
TCP/IP 即传输控制/网络协议,是面向连接的协议,发送数据前要先建立连接(发送方和接收方的成
对的两个之间必须建立连接),TCP 提供可靠的服务,也就是说,通过 TCP 连接传输的数据不会丢
失,没有重复,并且按顺序到达
UDP 它是属于 TCP/IP 协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是没有可
靠性的协议。因为不需要建立连接所以可以在在网络上以任何可能的路径传输,因此能否到达目
的地,到达目的地的时间以及内容的正确性都是不能被保证的。
TCP 与 UDP 区别:
TCP 是面向连接的协议,发送数据前要先建立连接,TCP 提供可靠的服务,也就是说,通过 TCP
连接传输的数据不会丢失,没有重复,并且按顺序到达;
UDP 是无连接的协议,发送数据前不需要建立连接,是没有可靠性;
TCP 通信类似于于要打个电话,接通了,确认身份后,才开始进行通行;
UDP 通信类似于学校广播,靠着广播播报直接进行通信。
TCP 只支持点对点通信,UDP 支持一对一、一对多、多对一、多对多;
TCP 是面向字节流的,UDP 是面向报文的;面向字节流是指发送数据时以字节为单位,一个数据
包可以拆分成若干组进行发送,而 UDP 一个报文只能一次发完。
TCP 首部开销(20 字节)比 UDP 首部开销(8 字节)要大
UDP 的主机不需要维持复杂的连接状态表
TCP 和 UDP 的应用场景:
对某些实时性要求比较高的情况使用 UDP,比如游戏,媒体通信,实时直播,即使出现传输错误
也可以容忍;其它大部分情况下,HTTP 都是用 TCP,因为要求传输的内容可靠,不出现丢失的情
况
形容一下 TCP 和 UDP
TCP 通信可看作打电话:
李三(拨了个号码):喂,是王五吗?王五:哎,您谁啊?李玄:我是李三,我想给你说点事儿,你现
在方便吗?王五:哦,我现在方便,你说吧。甲:那我说了啊?乙:你说吧。(连接建立了,接下来
就是说正事了…)
UDP 通信可看为学校里的广播:
播音室:喂喂喂!全体操场集合
运行在 TCP 或 UDP 的应用层协议分析。
运行在 TCP 协议上的协议:
1. HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
2、HTTPS(HTTP over SSL,安全超文本传输协议),HTTP 协议的安全版本。
3、FTP (File Transfer Protocol,文件传输协议),用于文件传输。
4、POP3(Post Office Protocol,version 3,邮局协议),收邮件用。
5、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
6、TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
7、SSH(Secure Shell,用于替代安全性差的 TELNET),用于加密安全登陆用。运行在 UDP 协议上的协
议:
1、BOOTP(Boot Protocol,启动协议),应用于无盘设备。
2、NTP(Network Time Protocol,网络时间协议),用于网络同步。
3、DHCP (Dynamic Host Configuration Protocol,动态主机配置协议),动态配置 IP 地址。
运行在 TCP 和 UDP 协议上:
剩余18页未读,继续阅读
资源评论
红红火火a
- 粉丝: 17
- 资源: 1816
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功