Linux 网络相关

一. 网络应用程序设计模式
C/S – client/server 协议灵活, 可缓存数据, 但是开发量大
B/S – browser/server 跨平台, 但是协议单一http/https
二. 协议概念: 数据传输和数据解释的规则, 典型协议: TCP/UDP, http, FTP, IP, ARP
socket 并不是协议, 可以理解为网络接口, 但是里边封装的有协议(TCP/UDP传输层协议)
三. 分层模型

《Linux 网络相关》 OSI七层模型.png

  • osi 7层
    从下往上: 1.物理层 2.数据链路层 3.网络层(用的最多的是IP协议) 4.传输层(用的多的tcp/udp), 5.会话层, 6.表示层, 7.应用层(用的多的是http, ftp, ssh)
  • tcp/ip 4层, 开发人员只做应用层的处理, 其他的内核处理
    从下往上:
    1.网络接口/数据链路层: 物理层, 数据链路层; 该层对应的以太网帧协议
    2.网络层: 网络层(用的最多的是IP协议)
    3.传输层: 传输层(用的多的tcp/udp)
    4.应用层: 会话层, 表示层, 应用层(用的多的是http, ftp, ssh)
    四. 协议介绍
    (1) 以太网帧协议(处于物理层, 发送数据时封装在最外层的), 有系统内核处理; 原理: 需要找到对方的mac地址, 然后通信, 所以需要使用ARP协议(通过IP)先发送一个请求的ARP数据包;

《Linux 网络相关》 以太网帧协议.png

不知道的地址,则填ff:ff:ff:ff:ff:ff

《Linux 网络相关》 发送请求.png

对方收到请求之后回复, 此时对方会将数据填进去

《Linux 网络相关》 回复请求.png

之后在通信时, 帧类型0800即可通信

(2) 网络层协议, 这里介绍IP协议, 目前使用的是ipv4, 数据包最多条256次
《Linux 网络相关》 IP数据报格式.png

(3) 传输层协议(udp/tcp)

《Linux 网络相关》 UDP数据段.png

《Linux 网络相关》 TCP数据段.png

net映射:
http://www.cnblogs.com/OpenCoder/diary/2011/06/29/2093895.html

打洞机制: 比如语音聊天, 两个客户端不能直接通信, 因为路由保护, 但是他们都认识一个服务器, 此时服务器会将两者连接起来, 这种模式即为打洞机制.

    原文作者:dab61956e53d
    原文地址: https://www.jianshu.com/p/684fbf45aded
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞