文章目录
- 搜索baidu,会用到计算机网络中的什么层?每层是干什么的.
- TCP和UDP的区别和各自适用的场景
- 请你说一下TCP怎么保证可靠性.
- 请说一说TCP拥塞控制, 以及达到什么情况的时候开始减慢增长的速度?
- TCP建立连接和断开连接的过程(三次握手和四次挥手), 及原因, 为什么不两次握手, 或四次握手?
- GET和POST的区别
- 请问你有没有基于做过socket的开发?具体网络层的操作该怎么做?(其实也是问网络编程的基本步骤)
- 请你说一下HTTP返回码
- 请你来说一说http协议
- 请回答一下HTTP和HTTPS的区别,以及HTTPS有什么缺点?
- 请你说一下阻塞,非阻塞,同步,异步
- 请你说一说TCP/IP数据链路层的交互过程
- 请你说一说IP地址作用,以及MAC地址作用
- 请介绍一下操作系统中的中断
搜索baidu,会用到计算机网络中的什么层?每层是干什么的.
1,浏览器输入URL
2.浏览器要将URL解析为IP地址,解析域名就需要用到DNS协议(应用层),首先主机会查询DNS的缓存,如果没有就给本地DNS 发送查询请求.DNS的查询分为两种方式,一种是递归查询,一种是迭代查询.如果是迭代查询,本地的DNS服务器,向根域名服务器发送查询请求,根域名服务器告知该域名的一级域名服务器,然后本地域名服务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP 地址.DNS服务器是基于UDP的,因此会用到UDP协议(传输层).
3.得到IP地址后,浏览器就要与服务器建立一个http连接.因此就要用到http协议(应用层).http生成一个get 请求报文,将该报文传给TCP层(传输层)处理,所以还会用到TCP协议.如果采用https还会使用https协议先对http数据包进行加密.TCP 层如果有需要先将HTTP数据包分片,分片依据路径MTU和MSS.TCP的数据包然后会发送给IP层(网络层),用到IP协议.IP层通过路由选路,一跳一跳发送到目的地址.当然在一个网段内的寻址是通过以太网协议实现的,以太网协议需要直到目的IP地址的物理地址,又需要ARP协议(网络层).
其中:
(五层协议)
1.DNS协议,http协议,https协议属于应用层, 应用层是体系结构中的最高层,应用层确定进程之间通信的性质以及满足用户的需要.
2.TCP/UDP属于传输层
传输层的任务是负责主机两个进程之间的通信.
3.IP协议,ARP协议属于网络层
网络层负责为分组交换网上的不同主机提供通信.网络层的另一个任务就是要选择合适的路由, 使源主机运输层所传下来的分组能够交付到目的主机.
4.数据链路层:
当发送数据时, 数据链路层的任务就是将在网络层交下来的IP数据报组装成帧, 在两个相邻结点间的链路上传送以帧为单位的数据.
5.物理层
物理层的任务就是透明地传送比特流.
OSI七层模型
物理层:RJ45, CLOCK, IEE802.3协议
数据链路层:PPP, FR, MAC, VLAN协议
网络层:IP, ARP, ICMP协议
传输层:UDP,TCP协议
会话层:建立,管理和终止会话,RPC, NFS, SQL协议
表示层:对数据进行翻译,加密和压缩,JPEG, MPEG, ASII协议
应用层:允许访问OSI环境的手段,DNS, HTTP, FTP,( WWW, telent, SMTP)协议
TCP/IP四层模型
网络接口层:MAC, VLAN
网络层:IP, ARP, ICMP
传输层:TCP, UDP.
应用层:HTTP, DNS,SMTP
TCP和UDP的区别和各自适用的场景
参考回答:
1)TCP和UDP区别
1) 连接
TCP是面向连接的传输层协议,即传输数据之前必须先建立好连接。
UDP无连接。
2) 服务对象
TCP是点对点的两点间服务,即一条TCP连接只能有两个端点;
UDP支持一对一,一对多,多对一,多对多的交互通信。
3) 可靠性
TCP是可靠交付:无差错,不丢失,不重复,按序到达。
UDP是尽最大努力交付,不保证可靠交付。
4)拥塞控制,流量控制
TCP有拥塞控制和流量控制保证数据传输的安全性。
UDP没有拥塞控制,网络拥塞不会影响源主机的发送效率。
5) 报文长度
TCP是动态报文长度,即TCP报文长度是根据接收方的窗口大小和当前网络拥塞情况决定的。
UDP面向报文,不合并,不拆分,保留上面传下来报文的边界。
6)首部开销
TCP首部开销大,首部20个字节。
UDP首部开销小,8字节。(源端口,目的端口,数据长度,校验和.
7)包大小:
UDP 包的大小就应该是 1500 - IP头(20) - UDP头(8) = 1472(Bytes) TCP 包的大小就应该是 1500 - IP头(20) - TCP头(20) = 1460 (Bytes)
2)TCP和UDP适用场景
从特点上我们已经知道,TCP 是可靠的但传输速度慢,UDP 是不可靠的但传输速度快。因此在选用具体协议通信时,应该根据通信数据的要求而决定。
若通信数据完整性需让位与通信实时性,则应该选用TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)。
请你说一下TCP怎么保证可靠性.
TCP保证可靠性:
(1)序列号、确认应答、超时重传
数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接收的数据序列号。如果发送发迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一定时间后会进行重传。这个时间一般是2RTT(报文段往返时间)+一个偏差值。
(2)窗口控制与高速重发控制/快速重传(重复确认应答)
TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定要等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值。如果不使用窗口控制,每一个没收到确认应答的数据都要重发。
使用窗口控制,如果数据段1001-2000丢失,后面数据每次传输,确认应答都会不停地发送序号为1001的应答,表示我要接收1001开始的数据,发送端如果收到3次相同应答,就会立刻进行重发;但还有种情况有可能是数据都收到了,但是有的应答丢失了,这种情况不会进行重发,因为发送端知道,如果是数据段丢失,接收端不会放过它的,会疯狂向它提醒…
(3)拥塞控制
如果把窗口定的很大,发送端连续发送大量的数据,可能会造成网络的拥堵(大家都在用网,你在这狂发,吞吐量就那么大,当然会堵),甚至造成网络的瘫痪。所以TCP在为了防止这种情况而进行了拥塞控制。
慢启动:定义拥塞窗口,一开始将该窗口大小设为1,之后每次收到确认应答(经过一个rtt&#