.互联网协议

互联网协议又称为网络七层协议,OSI七层协议,OSI是一个世界标准组织。

OSI七层协议:
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理连接层 学习由下到上:
需要优先了解的协议一共5层: - 物理连接层
基于电信号发送二进制的数据0101010111。 - 数据链路层
数据链路层的 "以太网协议",专门用于处理基于电信号发送二进制的数据。 以太网协议:
1.规定好电信号数据的分组方式。
2.每一台连接网线的电脑都必须要由一块 "网卡"。
- 网卡由不同厂商生产的
- 每块网卡都会有世界上独一无二12位的编号 "mac"地址。
- 前6位: 厂商号
- 后6位: 流水号 - 交换机:
可以让多台电脑连接到一起。 基于以太网协议发送数据:
特点:
广播、单播 弊端:
广播风暴、不能跨局域网通信。 - 互联网:
让局域网之间进行通信。 - 网络层
IP地址: 用于标识唯一的一台计算机(局域网)的地址。
IP: 点分十进制
最小值: 0.0.0.0
最大值: 255.255.255.255 IPV4(了解):
一开始用电脑的人不多,所以出现IPV4的协议版本。 IPV6(了解):
括号IP。 本机IP: 回环地址 127.0.0.1 ---> localhost - 传输层
TCP/UDP协议,他们都是基于端口工作的。 - 端口号: 标识电脑上某个一个软件。 - 端口号范围: 0-65535 注意:
1.操作系统中,一般0-1024的端口都被默认使用了(0-1024不要动)
2.尽量使用8000之后的端口号 8001 开发中常用软件的默认端口号 (默写) :
mysql: 3306
mongodb: 27017
Django: 8000
Tomcat: 8080
Flask: 5000
Redis: 6379 若想服务端与客户端进行通信,必须要建立连接,产生双向通道。
一条是客户端往服务端发送消息的。
另一条是服务端往客户端发送消息的。 - 应用层
http
ftp

总结:

ip:用于唯一标识某一台计算机的位置。

port: 端口用于确认计算机上的一个应用软件。

ip + port: 世界上某一台电脑上的一个应用软件。
  • TCP协议的工作原理:

    • TCP是一个流式协议

    • 三次握手,四次挥手(*******):

      • 三次握手建连接:

        建立双向通道,建立好连接。

        • listen: 监听
        • established: 确认请求建立连接
      • 发送数据:

        write

        read

        客户端往服务端发送数据,数据存放在内存中,需要服务端确认收到,数据才会在内存中释放掉。

        否则,会隔一段时间发送一次,让服务端返回确认收到。

        在一段时间内,若服务端还是不返回确认收到,则取消发送。并释放内存中的数据。

      • 四次挥手断连接:

        • TIME_WAIT: 时间等待

5.Socket:

1.什么是Socket?
socket是一个模块,可以写一套C/S架构的套接字。 2.为什么要使用Socket?
socket套接字会封装好各层协议的工作。
好处:
可以节省开发成本。 3.如何使用
import socket

注意: 客户端与服务端必须尊循:

一端send,另一端recv

不同两端同时send或recv

网络编程与socket的更多相关文章

  1. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  2. python 网络编程:socket(二)

    上节地址:Python网络编程:socket 一.send和sendall区别 send,sendall         ret = send('safagsgdsegsdgew') #send 发送 ...

  3. Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)

    在学习Linux高并发网络编程开发总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 10-Linux系统编程-第10天(网络编程基础-socket) 在学习Li ...

  4. 网络编程与socket套接字

    网络编程与socket套接字 传输层 PORT协议 port是一种接口,数据通过它在计算机和其他设备(比如打印机,鼠标,键盘或监视器)之间,网络之间和其他直接连接的计算机之间传递 TCP协议 ​ 传输 ...

  5. linux网络编程-(socket套接字编程UDP传输)

    今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...

  6. 浅谈TCP/IP网络编程中socket的行为

    我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...

  7. iOS 网络编程:socket

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  8. iOS网络编程笔记——Socket编程

    一.什么是Socket通信: Socket是网络上的两个程序,通过一个双向的通信连接,实现数据的交换.这个双向连路的一端称为socket.socket通常用来实现客户方和服务方的连接.socket是T ...

  9. python 网络编程(Socket)

    # from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...

  10. 网络编程,socket

    1.网络编程 网络: TCP/IP 彼此之间遵守协议和规范!之间才能产生通信! IP: 每个人都有自己的身份证号! 用来标识我们网络中每一台计算机! IP地址= 网络地址 +主机地址 网络地址 :标识 ...

随机推荐

  1. MVC 表单防伪,自定义提示(AntiForgery.Validate)

    再以前的文章解释过@Html.AntiForgeryToken()的部分源码,地址 直奔主题 <form id="form" action=""> ...

  2. Golang的一个CLI框架

    因为机缘巧合,因为希望能在VPS中使用百度网盘,了解到了一个开源的项目BaiduPCS-Go,可以用来直接存取访问百度网盘,做的相当不错 而且看ISSUES,作者可能还是个学生,很强的样子.稍微看了下 ...

  3. Nginx实现负载均衡的方式有哪几种呢?

    什么是负载均衡 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃.为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力. 我们 ...

  4. 使用 Vulkan * API 并行渲染对象

    Vulkan API 是业界最热门的新技术之一.它们支持多线程编程,可以简化跨平台开发,而且主要的芯片.GPU 和设备制造商都为其提供支持.Vulkan API 有望成为未来主流图形渲染平台之一.该平 ...

  5. elastic全文检索框架

    什么是ElasticSearch? 1.Elasticsearch是一个基于Lucene的搜索引擎.它提供了具有HTTPWeb界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎.Elastic ...

  6. 关于DOM操作的案例

    1. 模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> < ...

  7. Linux C/C++基础 文件(中)

    1.ubuntu cat命令的实现 cat——查看或者合并文件内容 #include<stdio.h> int main(int argc,char* argv[]) { //1.打开文件 ...

  8. 【C/C++语言】指针常量与常量指针的区别

    三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...

  9. 用IDEA开发Spring程序

    操作步骤 https://www.cnblogs.com/zyx110/p/11023218.html

  10. SpringMVC必备知识点汇总

    1.参数接收 1.1 数组 1.2 文件上传 1.2.1 单个文件上传 1.2.2 多个文件上传 1.2.3 文件上传时,携带其他数据 2.参数校验 参数校验:https://www.cnblogs. ...