30 지향 프로그래밍

생각 경로

목적은 인터넷에있는 다른 컴퓨터를 연결하는 것입니다

다른 컴퓨터에 물리 계층 매체 물리적 링크

통신 있지만 동일한 LAN에 데이터 링크 계층 MAC 주소

네트워크 계층은 결정 여부를 IP로 전 세계적으로 로컬 영역 네트워크에있는 컴퓨터

전송 계층은 포트 처리 시스템을 결정

이러한 JSON, XML 두 애플리케이션 사이에서 데이터를 교환하는 등, 자신의 애플리케이션 계층 데이터 구조를 정리

 

 

 네트워크 프로그래밍

일반적으로 이루어진 서로 연결된 네트워크 케이블이나 다른 매체를 통해 복수의 컴퓨터에 의해 인터넷에서 컴퓨터 네트워크를 말한다

네트워크 프로그래밍이라는 프로그램을 통해 네트워크 기반 응용 프로그램을 작성

네트워크 프로그래밍을 학습하는 네트워크 통신을 지원하는 응용 프로그램을 개발하기 위해 다른 컴퓨터와 서로 데이터를 전송하기 위해 네트워크를 사용하는 방법을 배우게하는 것입니다,

C / S의 구조

네트워크 프로그래밍을 학습하는 것은, 다른 컴퓨터의 네트워크 데이터를 통해 액세스 할, 그래서 필연적으로 두 개 이상의 컴퓨터를 필요는 데이터를 공유 데이터 및 절차를 공유하고 데이터에 액세스하는 다른 컴퓨터에서 실행 한 컴퓨터에서 서 프로그램,

우리는 데이터 서버 (서버)를 제공하는 파티라는 파티는 (클라이언트) 데이터에 액세스 클라이언트라고

또한, 웹 브라우저는 본질적으로 C / S 인 B / S로 알려진 서버하지만 클라이언트 브라우저의 데이터에 액세스 할

학습 네트워크 프로그래밍의 궁극적 인 목표는 C / S 구조를 기반으로 애플리케이션을 작성하는 것입니다

통신하기 위해 두 컴퓨터는 두 가지 기본 요소가 있어야합니다

1. 케이블, 무선, 광섬유를 포함하는 물리적 인 연결 매체,

2. 통신 프로토콜

 

 

통신 프로토콜

    그것은 상호 송신자와 수신자가 규범의 설정 합의 

는 합의가 필요한 이유
데이터를 해결할 수 있습니다 양측를 해결하는 것을 목표로
 

OSI

OSI 약칭 개방 시스템 상호 접속 기준 모델 통신용 오픈 시스템 상호 접속 기준 모델

, OSI 전체 통신 프로세스가 일곱 층으로 분할된다,라고 OSI 일곱 계층 모델로서

 

물리 계층 
의 물리적 연결을 물리적 매체를 통해 확립된다
이진 데이터하지만 이해할 간단한 이진 1,010,101를 전송할 수있다

 

데이터 링크 계층

이더넷 프로토콜 (이더넷), 전기 신호의 그룹핑을 제공하는 데이터 링크 계층에서 작동

다음과 같이 이더넷을 제공합니다 :

  • 전기 신호들의 집합을 '프레임'이라 불리는 데이터 패킷을 구성

  • 헤더와 두 부분의 데이터 선두 데이터 각각의 데이터 프레임으로 분할되고

:( 18 바이트를 포함하는 고정 헤드)

  • 6 바이트의 보낸 사람 / 소스 주소

  • 수신자 / 목적지 주소, 여섯 바이트

  • 데이터 유형 (이더넷 + 형 태그), 6 바이트

46 개 바이트의 데이터를 포함 :( 최소, 최대 1500 바이트)

  • 패킷의 구체적인 내용

짧은 길이 + 데이터 길이 = 64 바이트, 1518 바이트의 최대 헤드 최대 한계 단편 전송을 초과

MAC 주소 :

이더넷 소정의 인터넷 접속 장치는 카드의 주소를 참조 카드, 송신 측의 어드레스 및 수신단 있어야한다는 MAC 주소

MAC 주소 : 각 NIC는 세계 고유 한 MAC 주소에 해고, 일반적으로 12 16 진수 (처음 6 개 자리 숫자로 표시 (48) 진 공장의 길이는 여섯 파이프 라인 후, 공급 업체입니다 호)

각 LAN 최종 IP (IP)의 네트워크 어드레스는 브로드 캐스트 어드레스이다 
(255) 범위 때문에 가능 - 192.168.13 0 : 1-254 같은
라우터는 스위치 인

방송

이더넷을 사용하는 가장 원시적 인 방법은, 방송 통신 모드, 즉 굉음 의한 기본적인 컴퓨터 통신

 브로드 캐스트 스톰

컴퓨터 링크 계층 이론으로, 세계는 동일한 네트워크에 연결할 수 
있지만, 우리는 같은 스위치에 연결된 모든 컴퓨터 장비 할 수없는
브로드 캐스트 폭풍 : 같은 시간에 같은 네트워크에 많은 컴퓨터가 브로드 캐스트 폭풍을 방송합니다 보내 동안 네트워크를 가지고

 

서로 통신 할 수있는 네트워크에서 컴퓨터를셔서뿐만 아니라 책임을 전환뿐만 아니라, 네트워크 전송을 최적화하기 위해,

어떻게 최적화를?

당신은 PC1과 PC2 통신하기 전에 싶을 때

1. PC2의 MAC 주소를 알아야 할 필요성은, 먼저, 모든 컴퓨터에이 정보를 방송한다

2.이 정보는 스위치에 넘겨 다음 스위치에 의해 방송되어야한다,

MAC 주인 메시지 도착을받은 후 3.pc2 발견 메시지는, 데이터의 송신자에 회신

4. 또한, 스위치에 응답해야 다음 스위치는 PC2 네트워크 구호에 해당하는 MAC 주소를 기록하고 자체 캐시에 저장

머리 PC2의 데이터를 제공 할 때 캐시 PC2 5에서 MAC 주소 찾기,

6. 개인에게 직접 전송 PC2를 발견하면,하지 필요한 라디오,

7. 더 이전 방송 프로세스가 반복되지가있는 경우

자동 학습 기능이라고이 최적화 기능

취득해야하는 MAC 주소는 처음으로 컴퓨터에 대한 링크를 방송

한 MAC 주소를 한 번 링크가 다음 번에 기록되었을 때 스위치는 브로드 캐스트하지 것이다

IP 프로토콜

IP 프로토콜은 네트워크 계층 프로토콜에서 작동하고, 이름 : 인터넷 프로토콜 주소, 인터넷 프로토콜 주소로 변환

IP 프로토콜은 IP 할당해야 컴퓨터 네트워크에 각각의 장치가 필요 
어드레스
논리 어드레스는 다를 수 고정되지되는 IP를
반대의 논리적 물리적 존재가있다
  • IP 프로토콜 정의 어드레스 IP 주소 널리 네트워크 어드레스는 32 비트 이진수로 표시되는 버전 지정 즉 IPv4 만 사용 V4 불린다

  • 범위 0.0.0.0-255.255.255.255

  • 맥 주소를 기반으로 네트워크 주소의 개념과 IP 주소   
  •  네트워크 브로드 캐스트 주소로 당신은 범위를 좁힐 수 있습니다
  • 예를 들어, 네 개의 소수 일반적으로 작성된 IP 주소 : 192.168.10.1

  • 네트워크 번호 : 서브넷을 식별

    어디 LAN을 표시하는 데 사용
  • 수를 호스트 : 호스트를 식별

  • 호스트 LAN의 위치를 ​​표시하는 데 사용됩니다

분류 IP 주소 :

정부 기관을 위해 예약 카테고리

1.0.0.0 --- 126.0.0.0

클래스 B는 중간 규모의 기업에 할당

128.0.0.0 --- 191.255.0.0

클래스 C가 필요로하는 사람에게 할당

192.168.0.1 - 192.168.255.254

멀티 캐스트 클래스 D

실험 클래스 E

클래스 C 누구나 사용할 수 있습니다해서 우리의 컴퓨터는 192.168로 시작하는, 일반적으로 클래스 C의 IP입니다

서브넷 마스크

서브넷 마스크는 네트워크 식별자와 호스트 식별자 구별하고 IP 주소가 LAN 상에 또는 원격 네트워크에 있다는 표시에 IP 주소의 일부를 차폐하는 32- 비트 어드레스이다.

그것은 모든 네트워크, 호스트 부분으로 공의 일부입니다. 예를 들어, IP 주소, 172.16.10.1, 공지의 네트워크가, 본체 부 (8) 전방 부 (24) 인 경우, 서브넷 마스크 진수로 기록 11111111.11111111.11111111.00000000이다 255.255.255.0이다.

왜 우리는 서브넷 마스크를 필요합니까

간단한 IP 주소 만 입력 한 IP 주소, 서브넷 인식하지 않는 IP를 식별 , 네트워크 번호를 대표하는 비트 모르기 때문에, 192.168.10.1과 192.168.10.2가 동일한 서브넷을 모두 확인할 수 없습니다 예를 이는 호스트 수를 나타낸다

두 개의 IP 서브넷 마스크가 동일한 서브넷에 속하는 여부를 확인하는 방법

"서브넷 마스크"를 알고, 우리는 동일한 서브넷에있는 두 개의 IP 주소 여부를 판단 할 수있을 것입니다. 두 가지 방법은 (두 자리 그렇지 연산 결과가 1이고, 1이고, 0) IP 주소와 서브넷 마스크를 AND 연산이었다 있으며, 그 결과가 동일 비교하고, 만약 그렇다면, 그들이 동일한 하위에 있는지 보여 네트워크는, 그렇지 않은 경우는 없습니다.

케이스 : 알려진 IP 주소 172 .16.10.1 172 .16.10.2 서브넷 마스크는 255입니다 .255.255.0 , 그들은 동일한 서브넷에있는 경우 물어? 둘 다했다 및 서브넷 마스크와 운영, 172.16.10.1 : 10101100 .00010000.00001010.000000001 255255.255.255.0 : 11111111.11111111.11111111.00000000 AND 연산 결과를 얻을 네트워크 주소 : 10,101,100 .00010000.00001010.000000001 -> 172.16.10.0 172.16.10.2 : 10,101,100 .00010000.00001010.000000010 255255.255.255.0 : 11111111.11111111.11111111.00000000 AND 연산 결과 얻어진 네트워크 주소 : 10,101,100 .00010000.00001010.000000001 -> 172.16.10.0 결과 172 .16.10.0 되므로 동일한 서브넷이다.
   







요약하면, IP 프로토콜의 역할은 하나가 각 컴퓨터에 IP 주소를 할당, 두 가지가있다, 다른 하나는 동일한 서브넷에있는 주소를 결정하는 것입니다.

IP 패킷

IP 패킷 데이터는 헤드 부분으로 분할되고

머리 : 길이 20 ~ 60 바이트

데이터 : 65,515 바이트까지.

이더넷 패킷 및 "데이터"섹션, 1500 바이트의 최대. IP 패킷이 1500 바이트를 초과하는 경우 따라서, 별도로 전송 여러 이더넷 데이터 프레임으로 분할해야합니다.

ARP 프로토콜

ARP 프로토콜 :? IP의 기원은 동적 할당 논리 주소 및 데이터 전송이은을 필요로 할 수는 IP ARP 프로토콜의 MAC 주소를 얻을 수있는 방법, MAC 주소에 의존해야 일반적으로

ARP 프로토콜 기능 : 브로드 캐스트 패킷을 전송, 대상 호스트의 MAC 주소

 

먼저 명확한 각 호스트의 IP는 알려져 있으며, 서브넷 마스크가 동일한 서브넷 여부를 결정하기 위해

사례 1 : 호스트 192.168.1.101 192.168.1.102 액세스

그것은 동일한 서브넷 ARP 요청 프레임 내용입니다 :

1.FF : FF : FF : FF : FF : FF 스위치에서 특별한 MAC 주소이 주소 데이터가 네트워크 내의 모든 호스트로 방송되는 것을 알 것입니다

ARP 요청을받은 후 소스 호스트 MAC에 2.192.168.1.102 자신의 MAC 회신

3. 보낸 사람 (192.168.1.101) 응답의 수령 후, 서로의 MAC 주소 저장 매핑 관계는 나중에 사용하기 위해 캐시을 IP 것이다

추신 : -a는 ARP 캐시 목록을 볼 수 있습니다하여 ARP

상대방의 MAC 주소 후 데이터 프레임의 내용을 결정 :

 

사례 2 : 호스트 192.168.1.101 192.168.111.101 액세스

대상 IP 스위치는, 현재의 서브넷에 있지 발견

수신 측 (192.168.111.101)가 게이트웨이가 192.168.111.1이고; 1 스위치는 다른 목적지 IP 게이트웨이 IP, 디폴트 게이트웨이 호스트 번호 1에 대한 ARP 요청을 시작

발신자 스위치 ARP 데이터 프레임에 의해 개시 :

다른 게이트웨이로부터의 요청에 따라 (2)는, 자신의 ARP 요청에 회신의 IP의 IP, 스위치가 발신자 MAC 주소를 통보 발견

3. 송신기 스위치 자체의 ARP 캐시에 저장 게이트웨이와 IP 및 MAC 어드레스의 반대편

4. 다른 게이트웨이 MAC 주소 MAC 송신기의 송신기 (192.168.1.101)와 목적지 IP 맵핑 관계에 저장된 마찬가지로 다른 게이트웨이, 로컬 ARP 캐시 알려

이 시점에서 ARP 요청의 끝은 데이터 전송을 시작할 수 있습니다

 

콘텐츠의 MAC 주소 뒤에 송신 된 데이터 프레임이어서 :

 

 

总结:ARP通过广播的方式来获取MAC地址, 不在同一子网时 ARP得到的时对方网关的MAC地址,数据到达对方网关后,由网关根据IP交给对应的主机,当然对方网关获取主机MAC也是通过ARP

ps:路由器 交换机都可以称之为网关!

 

传输层

 

通过物理层简历链接通道

通过数据链路层的MAC,可以定位到某个局域网中的某台主机,

通过网络层的IP地址,子网掩码,可以定位到全球范围某一局域网下的某台主机

端口号 ,端口是需要联网的应用程序与网卡关联的编号

传输层功能:建立端口到端口的通信

补充:端口范围0-65535,0-1023为系统占用端口

TCP与UDP是工作在传输层的协议:

TCP协议

可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

TCP之所以可靠,是因为在传输数据前需要三次握手确认建立链接

三次握手:

三次握手的过程实际上实在确认我发的你能收到,你发的我也能收到,从而保证数据传输的的可靠性,

链接是一个虚拟的概念,不实际存在,只要三次握手成功即表示连接建立成功!

问题是三次握手时的确能保障数据传输是可靠的,那么握手后的数据要如何保证传输成功呢?

TCP协议要求在发送数据后,必须接收到对方的回复信息才能确认数据成功发送,如果一段时内没有收到回复信息,会自动重新发送,如果重试的次数过多则表示链接可能已经中断!

 

四次挥手:

四次挥手的目的是保证双方的数据传输已经全部完成,同样是为了保证数据的完整性

总结

其优点很明显:能够保证数据传输是完整的

缺点:由于每次都需要传输确认信息,导致传输效率降低

场景:多用于必须保证数据完整性的场景,例如文本信息,支付信息等!

 

UDP协议

不可靠传输

UDP协议采取的方式与TCP完全不同,其根本不关心,对方是否收到数据,甚至不关心,对方的地址是否有效,只要将数据报发送到网络,便什么都不管了!

总结

优点:由于不需要传输确认信息,所以传输效率高于TCP协议

缺点:传输数据可能不完整

场景:视频聊天,语音聊天等,不要求数据完整性,但是对传输速度要求较高

应用层

应用层功能:规定应用程序的数据格式。

至此一连串高低电压就通过层层协议,变成了我们在应用程序中看到的各种数据

 

추천

출처www.cnblogs.com/komorebi/p/10931181.html