网络基础

网络架构

  • 五层网络架构:物理层、链路层、网络层、传输层、应用层
  • 七层网络架构:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

TCP/IP

  • 网络层的ip协议+传输层的tcp协议
    • 在网络层利用ip协议定位主机
    • 在传输层利用tcp协议进行可靠性保证
  • tcp/ip是个协议组包括了:
    • 应用层:FTP、HTTP、TELNET、DNS、smtp(邮箱)
    • 传输层:TCP UDP
    • 网络层:IP ICMP
  • 可以用Socket实现HTTP。Socket是实现传输层协议的一种编程API,可以是TCP,也可以是UDP。

TCP

  • 面向连接、可靠的传输协议,在传输前需要先建立连接

  • 可靠性:

    • 超时重发防止数据丢失
    • 丢弃重复数据
    • 首部和数据的检验和,确保数据在传输过程没有出错
    • tcp协议对报文段进行重排序,保证数据保序
    • 量控制,只接受特定缓存大小的数据

    可靠性:https://blog.csdn.net/Tong_jy/article/details/78477634

  • TCP协议可以保序

  • 对于传输的数据大小没有限制

  • 由于加入了可靠性控制,tcp的效率不如udp

  • 使用场景:http网页、smtp邮箱、ftp文件传输

创建连接

  • 一个Socket等待请求创建连接,一个Socket主动创建连接。一旦建立连接成功后,两个socket都可以双向数据传输
  • 创建连接三次握手:
    • 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手;

UDP

  • 是一个无连接的,面向数据报的协议
  • 协议本身不可靠,不提供超时重发机制;但是传输效率较高
  • udp中的每个数据包都有完整的源地址、目的地址、端口信息
  • 每个数据报不能超过64k
  • 使用场景:聊天室、语音广播

UDP和TCP

TCPUDP
数据传输形式面向字节流面向分组
保序
建立连接
可靠
效率较低较高

Socket

  • 套接字:ip+port。一个通信连的句柄;应用程序通过socket进行网络通信。使得程序员可以方便的使用TCP/IP协议栈
  • Socket是应用层TCP/IP协议族通信的中间软件抽象层
  • socket是一个门面设计模式,将复杂的协议隐藏
  • 进行网络通信必要的五要素:协议、本地主机ip、本地进程port、远程主机的ip、远程进程port

http

  • http是建立在tcp上的应用层协议
  • 在客户端进行请求的时候需要先建立tcp连接,请求结束后会主动释放tcp连接(短连接)
  • http1.1后提供了只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。
  • http是一种应用层协议,在发送到传输层后会包装成tcp协议
  • socket可以实现http协议,socket选用TCP协议

常见问题

  • tcp/ip和http的关系:tcp/ip是传输层和网络层的协议,http是应用层的协议,如果只有传输层以下,收到数据并不知道如何进行解析
  • tcp/ip和socket的关系:tcp/ip是协议,而socket是协议上的一个抽象层,方便使用协议进行应用开发。

参考:https://blog.csdn.net/u012439774/article/details/53634927

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值