网络编程

OSI网络7层模型

图片.png

1、物理层 :通信信道上传输原始的比特流,进行模数转换。
数据类型:比特流
设备举例:网卡
2、数据链路层:物理寻址,将比特流转换为逻辑线路传输(封装成帧),对帧进行解码,发送到正确的接收方。
数据类型:帧
设备举例:交换机
3、网络层:将网络地址翻译为对应的物理地址,如何将数据从发送发路由到接收方。
设备举例:路由器
数据类型:数据包。对应TCP/IP协议里面的IP协议。
4、传输层:把数据进行分割,并将这些数据交给网络层,保证数据段有效到达对端。
数据类型:数据段。对应TCP/IP协议里面的TCP、UDP协议。
5、会话层:管理应用程序之间的通信,保证可以自动收发包和寻址。
代表协议:RPC远程过程调用协议
6、表示层:解决不同系统之间通信语法的问题,以及它们的关联如加解密、压缩解压缩。
7、应用层:固定消息头,消息头里面记录消息体的长度。
对应TCP/IP协议里面的HTTP协议。

  • 整体先自上而下,后自下而上处理数据头部。


    图片.png

TCP/IP 对osi参考模型的具体实现

图片.png

图片.png

TCP报文头

图片.png
  • TCP flags


    图片.png
  • TCP三次握手


    图片.png

    第一次:客户端:我能连你吗?
    第二次:服务端:可以的
    第三次:客户端:好的,那我连了。


    图片.png

    图片.png

UDP报文结构

图片.png
  • UDP特点


    图片.png

HTTP协议

  • http请求结构


    图片.png

    图片.png
  • http响应结构


    图片.png

    图片.png

HTTP常见状态码

200 OK 正常返回信息
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在 例如:输入了错误的url
500 Internal Server Error 服务器发生了不可预期的错误
503 Server Unavaliable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

Socket简介

Socket是对 TCP/IP协议的抽象,是操作系统对外开放的接口。


图片.png
  • Socket通信流程


    图片.png
  • 相关案例参考/IdeaProjects/practice/socket下面的代码

HTTP与HTTPS的区别

图片.png
图片.png
  • 加密方式


    图片.png
  • HTTPS数据传输流程
    图片.png

    参考学习 http://blog.51cto.com/11883699/2160032

你可能感兴趣的:(网络编程)