Network

3주차 네트워크 공부내용 정리

chattymin 2022. 5. 17. 14:38
728x90
반응형

프로토콜

프로토콜 : 컴퓨터와 컴퓨터 사이 메시지 전달 과정

프로토콜의 3대 요소

  1. 구문 : 데이터 구조, 포멧 => XML, JSON
  2. 의미 : 전송되는 데이터 각 부분의 의미를 알 수 있도록 미리 정해둔 규칙. 오류제어, 동기 제어, 흐름 제어를 포함 (제어들에 대한 설명은 잠시 뒤 나옴)
  3. 순서 : 어떤데이터를, 얼마나 빠르게 보낼것인지 정의

 

 

프로토콜의 기능

  1. 주소설정 : 서로 다른 시스템의 두 개체가 통신을 하는 경우
  2. 순서 제어 : 프로토콜 데이터 단위를 전송할 때 보내는 순서 명시하는 기능(연결지향형에서만 사용)

/*

연결지향형?

통신 연결이 유지되는 것을 지향하는 프로토콜. 송신자와 수신자가 먼저 연결된 후 데이터가 전송. => 서로 연결되어있기 때문에 어떤사람이 데이터를 보냈는지 연결을 통해 알수 있음

 

 비연결 프로토콜은 데이터 그램 사이에 관계가 전혀 없는 독립된 데이터 그램이다.

-->A[4]라는 데이터가 존재한다고 가정하자

    A[1], A[2], A[3],A[4]와 같이 그냥 별개로 독립된 의미라는 것이다. 도착한 순서대로

  

  연결 지향 프로토콜은 데이터 그램 사이에 관계가 존재 하는 비독립적 데이터 그램

  이다.

  --> A[4]라는 데이터가 존재한다고 가정하자. 이 데이터들은 순서가 중요하다.

그래서 A[1] A[2] A[3] A[4]와 같이 순서에 의미가 있는것이다.

*/

  1. 데이터 대열의 단편화 및 재조합 : 대용량 파일 전송시 전송효율이 높은 작은 단위로 나눠서 전송 후 전송 받은 시스템에서 재조합
  2. 캡슐화 : 데이터에 제어정보를 붙이는것.
  3. 각종 제어기능

연결제어 : 연결설정, 데이터 전송, 연결 해제에 대한 통제

흐름제어 : 수신측에서 데이터의 양과 속도 조절. 정보유실 방지

오류제어 : 데이터 교환시 SDU나 PCI가 잘못되었을 경우, 이를 발견하는 기법.

순서를 검사하거나 재전송 요구 (SDU : 정보 PCI : 제어정보)

SDU + PCI = PDU

동기화(동기제어) : 정의된 인자 값 공유. 송신과 수신측 시점을 맞추는것

다중화 : 통신 선로 하나에서 여러 시스템 동시 통신할 수 있는 기법

전송 서비스  : 우선순위 결정, 서비스 등급과 보안요구 등 제어하는 서비스

 

 

2계층 패킷 분석 : Ethernet II 클릭

정보는 밑줄 쳐져 있는 부분.

이더넷은 목적지 주소, 출발지 주소, 타입

목적지 주소 : 앞 12자리

출발지 주소 : 그다음 12자리. 

타입 : 08 00 => IP

 

3계층 패킷 분석 : Internet Protocol Version 4 클릭

정보는 밑줄 쳐져 있는 부분.

 

4 : 인터넷 프로토콜 버전 IPv4.

5 : 헤더길이(HLEN). 여기에 4를 곱한것이 실제 헤더 길이. 즉 헤더길이는 20Byte

02 : 서비스 타입(Type-of-Service. ToS) 서비스의 우선순위 제공.

2진법으로 바꾸면 8비트로 나옴. 0000 0010. 

Precedence : 3비트는 패킷의 우선순위

DTRC : 4 비트는 패킷의 Quality(중요하게 여겨지는 요소)

D : Minimize Delay : 지연이 없도록

T : Maximize Throughput : 처리량 최대로

R : Maximize Reliability : 신뢰성 최대로

C : Minimize Cost : 처리비용 최소

Not used : 1비트 안씀. 0으로 고정

0053 : 전체 길이(Total Length. TL) 

00 00 : 패킷의 고유 번호

40 00 : 2진수로 표현하면 0100 0000 0000 0000. 

앞의 3비트 : Fragmentation에 사용되는 Flag

첫번째 비트 : 미사용 => 항상 0

두번째 비트 : D F bit(Don't Fragment)

분열(조각) 0 : 라우터에서도 분열 가능

미분열 1 : 목적지 컴퓨터가 재조합 불가능 => 중간 라우터에서 데이터그램 단편화 금지

세번째 비트 : M F bit (More Fragment)

0 : 현재 조각이 마지막

1 : 더 많은 조각이 뒤에 존재

뒤의 13비트 : Fragment의 시작 값

최초 조각으로 어떤 곳에 붙여야 하는지 위치를 나타냄

각 조각들이 순서가 바뀌어 도착할 수 있어서 이 필드가 중요

/*

Fragmentation이란?

단편화 : 데이터의 크기를 줄여 전송하는 것.

flag : 분열의 특성을 나타냄.

*/

 

 

4계층 패킷 분석 : Transmission Control Protocol(TCP) 클릭

 

앞 4자리 : Source Port(S.Port) = 출발지. 

그다음 4자리 : Destination port(D.Port) = 목적지.  

주소 판별을 위해서는 IP주소 + 포트번호 필요. IP주소는 당연히 한 계층 밑이 네트워크 계층에 있는 IP헤더에 담으므로 여긴 포트만 나타냄. 2진수로 16bits를 할당받음

 

ee 0e 77 4c : Sequence Number(Seq.Number) = 데이터 전송 순서

2진수로 변환하여 32bits를 할당받음. 이 시퀸스 번호 덕분에 쪼개진 세그먼트의 순서를 파악하여 올바른 순서로 재조립 가능. 최초 전송시 본호를 랜덤한 수로 초기화, 이후 보낼 데이터의 1bytes당 시퀸스 번호를 1씩 증가하여 데이터 순서 표현. MAX숫자인 4294967296을 넘어갈 경우 다시 0부터 시작.

 

32 07 52 77 : Acknowledgment Number(Ack.Number) = 승인번호 => 데이터를 받은 수신자가 예상하는 다음 시퀸스 번호

2진수로 변환하여 32bits를 할당받음. 연결 설정과 해제때 발생하는 핸드쉐이크 과정에서 상대방이 보낸 시퀸스 번호 + 1로 승인번호 생성. But 실제로 데이터 주고받을때는 상대방이 보낸 시퀸스 번호 + 자신이 받은 데이터의 bytes로 생성

=> ex) 1MB용량의 파일을 보냄. 한번에 100bytes만큼의 데이터를 받는다고 가정.

100bytes양의 데이터를 전송하면서 시퀸스를 0으로 초기화함.

그러면 각 bytes당 1씩 값이 증가하는거. 즉, 다음에 받는 byets뭉치는 0다음인 1이 아니라 99다음인 100으로 받음. 배열의 이름이 주소값을 나타내는것 처럼 데이터를 나타내는 애가 첫번째 주소를 갖는 느낌

/*

핸드 쉐이크 : 두 호스트가 서로 동기화 메시지를 보내는데 메시지 내부에 시퀸스 번호와 응답번호를 보내고 1회씩 응답.

ex) A , B 존재

A -> B : 동기화 메시지 보냄. 자체 시퀸스 번호 x 포함

B -> A : 동기화 메시지의 승인번호 보냄. 자체 시퀸스 번호y, 응답번호 x+1 포함

A -> B : 응답메시지로 응답. 응답번호 y+1이 포함. B는 더이상 응답 필요 X

*/

 

Data Offset : 4비트. 데이터 부분이 어디서부터 시작하는지 나타내는 데이터. 데이터의 시작 = 헤더의 끝 => 헤더의 길이

Reserved : 6비트. 사용하지 않음 => 항상 0

Control Bits(플래그) : 

Window : 2바이트(16비트). 수신측에서 송신측에 윈도우 사이즈를 통지

Checksum : 2바이트(16비트). 오류 유무 검사. 16Bits씩 나눠서 차례대로 더하는 방식 사용. 나온 값에 1의 보수를 취하면 그 값이 데이터의 체크섬. 실제로는 1의 보수를 취하지 않고, 수신측은 데이터를 받으면 위 과정을 거친 후과 송신측에서 보낸 체크섬을 더해서 모든 비트가 1이면 데이터 정상. 하나라도 0 있으면 송신측에서 보낸 데이터에 변조가 있었음

 

Urgent Pointer : 긴급 포인터. 1일 경우, 여기가 가르키는 데이터 우선 처리

 

7계층 HTTP 패킷 헤더 분석하기

아스키 코드 값 47 45 54로 시작. 대문자로 GET

데이터 전송 상관없이 순수하게 응용프로그램이 사용하는 데이터 부분.

 

 

instagram : @naemamdaelo_study_blog

https://www.instagram.com/naemamdaelo_study_blog/

 

728x90
반응형