osi7层

应用层

与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNETHTTPFTPNFSSMTP等。
 

表示层

这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
 

会话层

它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
 

传输层

这层的功能包括是选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCPUDPSPX
 

网络层

这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
 

数据链路层

它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATMFDDI等。
 

物理层

OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45802.3等。
 

随机生成n位随机数(包含大写字母、小写字母、数字)

面试官多次引导还是没能想出来临场发挥还是不好
自己的想法优化版
复制代码
   function anystring(N) {
        let arr = [1,2,3,4,5,6,7,8,9,0,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M']
        function any(){
            let a =arr.length*Math.random()
            console.log(a)
            return Math.round(a-1)
        }
        let angarr = []
        for(let i = 0;i<N;i++){
            angarr.push(arr[any()])
        }
        return angarr
    }
复制代码

bug(有可能不会生成数字)

网上参考优化

复制代码
    function anystring(N) {
        let arr = [1,2,3]
        let num = [48,49,50,51,52,53,54,55,56,57]
        let up = [65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90]
        let down = [97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122]
        function getradmon(arr){
            return Math.round(Math.random()*(arr.length-1))
        }
        let angstring = ''
        for(let i= 0;i<N;i++){
            switch (arr[getradmon(arr)]) {
                case 1:angstring = angstring + String.fromCharCode(num[getradmon(num)]);break
                case 2:angstring = angstring + String.fromCharCode(up[getradmon(up)]);break
                case 3:angstring = angstring + String.fromCharCode(down[getradmon(down)]);break
            }
        }
        return angstring

    }

    console.log(anystring(10))
复制代码

2个矩形是否相交

复制代码
    class rect {
        constructor(x, y, height, width) {
            this.x = x; // 横坐标
            this.y = y; // 纵坐标
            this.height = height; //
            this.width = width; //
        }
    }

    function bool(a, b) {
        if ((a.x + a.width) > b.x && a.x < b.x && (a.y + a.height) > b.y && b.y > a.y) {
            console.log(1)
            return true
        } else if ((b.x + b.width) > a.x && b.x < a.x && (b.y + b.height) > a.y && a.y > b.y) {
            console.log(2)
            return true
        } else if (a.x < b.x && (a.x + a.width) > b.x && a.y < (b.y + b.height) && (b.y + b.height) < (a.y + a.height)) {
            console.log(3)
            return true
        } else if (b.x < a.x && (b.x + b.width) > a.x && b.y < (a.y + a.height) && (a.y + a.height) < (b.y + b.height)) {
            console.log(4)
            return true
        } else {
            return false
        }
    }
复制代码

 

posted @   想学前端的小李  阅读(23)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示