ping的原理简述: ping命令是用来探测目标ip地址是否可以访问 Ping是通过ICMP协议实现的,ping的时候,会向接收方发送回送请求的ICMP报文,对方接收到后,会回复类型为回送应答的ICMP报文 交换机和路由器有什么区别? 交换机工作在MAC层,称为二层网络设备,主要负责数据帧的转发和交换,交换机会根据MAC地址来转发数据包,是实现局域网内设备的通信 路由器工作在IP层,称为三层网络设备,主要负责IP数据包的转发和路由选择,路由器会根据IP地址来转发数据包,实现不同网络间的通信 IP地址和MAC地址有什么区别? IP地址用于网络中唯一标识和定位设备,它是网络层使用的地址,用于实现不同网络之间的通信 MAC地址用于局域网中唯一标识和定位设备,它在数据链路层使用的地址,实现局域网内设备之间的通信 NAT协议 网络地址转换协议NAT功能详解及NAT基础知识介绍 5.1 IP 基础知识全家桶 192.168.1.100/24中斜杠代表什么意思? 斜杠(/)后面的数字表示子网掩码的位数 比如,192.168.1.100/24中的斜杠后面数字表示子网掩码的位数,子网掩码用于划分IP地址中的网络部分和主机部分。将子网掩码和IP地址进行与运算,就可以得到网络号 具体来说:192.168.1.100/24表示前24位是网络部分,后8位是主机部分

1 min · Chen-Hang

OSI的7层网络模型?各层的协议有什么? 应用层:确定进程间通信的性质以及满足用户需要以及提高网络和用户应用 表示层:主要解决用户信息的语法表达 会话层:复制建立、管理和终止表示层实体之间的通信会话 传输层:实现网络不同主机上的用户进程间的数据通信,可靠和不可靠的传输 网络层:本层通过IP寻址来建立两个节点之间的连接 数据链路层:将上层数据封装成帧,用MAC地址访问媒介 物理层:设备之间比特流的传输,物理接口 回答: OSI参考模型有7层,应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 应用层有HTTP、HTTPS,传输层有TCP和UDP协议,网络层有IP、ICMP、ARP协议 网络分层的好处:对各层之间进行解耦,层与层之间不产生关联,比如应用层HTTP协议从HTTP1.1升级到HTTP2.0的时候,不会对传输层和网络层有影响,或者网络层的IPv4协议升级到IPv6协议的时候,不会影响到应用,传输层 TCP/IP协议是将OSI模型的应用层、表示层、会话层统一为应用层,数据链路层和物理层统一为网络接口层 TCP/IP的四层网络模型? 应用层 传输层 网络层 数据链路层(网络接口层) 五层因特网协议栈? 应用层、运输层、网络层、链路层、物理层 OSI七层网络协议 TCP/IP四层概念模型 对于网络协议 应用层 — 表示层 — 会话层 应用层(4) HTTP、TFTP、FTP、NFS、WAIS、SMTP – Telnet、Rlogin、SNMP、Gopher – SMTP、DNS 键入网址场景问题 键入网址后,期间发送了什么? http/https -> dns -> tcp -> ip -> arp 浏览器会解析网址,解析出域名,资源路径,端口等信息,构造HTTP请求报文 将域名解析为IP地址,先查看系统缓存是否有域名信息,有的话返回IP地址;没有就查看本地host文件没有域名信息,有就返回IP地址;如果再没有就查看本地DNS服务器,如果本地DNS服务器中有域名信息,就返回IP地址,否则本地DNS服务器分别去根域名服务器->顶级域名服务器->权威域名服务器询问,最后拿到IP地址 HTTP协议是基于TCP协议传输的,所以要先进行TCP三次握手, 然后到网络层,加上IP头,同时填上目标IP地址和源IP地址 然后到数据链路层,通过ARP协议,获取路由器的MAC地址,然后加上MAC头,填上目标MAC地址和源MAC地址 然后到物理层,直接把数据包转发给路由器,路由器再通过下一跳,找到最终的目的服务器 当双方完成三次握手后,如果是HTTP协议,客户端就会把HTTP请求发送给目标服务器;如果是HTTPS协议,还需要进行TLS四次握手,客户端才会把HTTP报文发送给目标服务器 目标服务器收到HTTP报文后,返回HTTP响应消息,浏览器对响应消息进行解析渲染,呈现给用户 DNS是如何解析的?属于哪一层的协议? DNS属于应用层的协议,客户端在进行DNS解析时,首先会查看浏览器和操作系统是否缓存域名对应的IP地址,如果没有就向本地DNS服务器发出查询请求,接着本地DNS向根DNS发送查询请求,根DNS服务器返回顶级域名服务器地址,本地DNS服务器向顶级域名服务器发送查询请求,顶级域名服务器返回权威域名服务器的IP地址,本地DNS服务器再向权威域名服务器发出查询请求,权威域名服务器收到请求后,就返回域名对应的IP地址了,本地DNS服务器返回查询结果给客户端,然后将本次查询得到的结果保存到缓存里,以备下次使用 DNS域名解析使用的是什么协议? DNS中,域名的解析是通过UDP协议进行的 UPD是一种无连接的传输层协议,提供了一种简单的传输机制,适用于实时性比较高的应用场景。DNS使用UDP协议进行域名解析是因为域名解析是短小且频繁的请求,UDP的无连接特性可以减少建立连接和断开连接的开销,提高传输效率 UPD协议对于TCP协议的缺点是没办法保证数据传输的可靠性,针对这个缺点可以在应用层实现超时重传机制,如果域名解决请求在一定的时间内没有收到响应,那么就重发域名解析 输入域名怎么找到端口号? http的默认端口是80;https的默认端口号是443; 如果用户指定了端口,可以在url中获取,比如域名:8080,这时候使用的端口是8080 网络传输场景 tcp连接一个不存在的IP地址会发生什么? 如果IP地址是局域网内,客户端的内核在发生arp请求的时候,广播这个目标IP是谁的,但是由于网络中不存在这个IP地址,所以没有设备应答,会卡在arp协议,客户端的SYN报文无法发送出去 如果这个IP地址不是局域网的,客户端会将SYN报文交给路由器,由路由器继续转发,由于目标IP地址是不存在的,该SYN报文会在网络中消亡;客户端由于一直接收不到SYN报文的确认报文,会触发超时重传机制,直到最大的重试次数,客户端的连接会被释放 tcp连接一个IP地址存在但是端口不存在的服务端会发生什么? 端口不存在的话,代表服务端没有监听这个端口,服务端在接收到客户端的SYN包后,返回RST报文,客户端接收到RST报文后,会断开连接 UDP发送一个IP地址存在但是端口不存在报文会发生什么? 服务端会回ICMP报文,报告端口不可用

1 min · Chen-Hang

Bind to a port 使用net 开启一个TCP服务,监听端口6379 func main() { // You can use print statements as follows for debugging, they'll be visible when running tests. fmt.Println("Logs from your program will appear here!") // Uncomment this block to pass the first stage l, err := net.Listen("tcp", "0.0.0.0:6379") if err != nil { fmt.Println("Failed to bind to port 6379") os.Exit(1) } _, err = l.Accept() if err != nil { fmt.Println("Error accepting connection: ", err.Error()) os.Exit(1) } } Redis 客户端和服务器使用 TCP 相互通信。 Respond to PING

1 min · Chen-Hang

database

Contains posts related to database

October 31, 2024 · 0 min · Chen-Hang