여러 프로세스 중에서 통신하고 싶은 특정 프로세스와 통신하는 방법  ( Client - Server 간의 통신 )

4 계층 프로토콜

4계층에서 하는 일

  • 전송 계층은 송신자의 프로세스와 수신자의 프로세스연결하는 통신 서비스를 제공한다.
  • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 다중화와 같은 편리한 서비스를 제공한다.
  • TCP : 연결 지향 전송 방식을 사용하는 전송 제어 프로토콜 ( TCP )
  • UDP : 비연결 지향, 단순한 전송에 사용되는 사용자 데이터그램 프로토콜 ( UDP

 

포트 번호

  • 특정 프로세스와 특정 프로세스가 통신을 하기 위해 사용한다. ( 프로세스가 쓰는 주소
  • 하나의 포트는 하나의 프로세스만 사용 가능하다.
  • 하나의 프로세스가 여러 개의 포트 번호를 사용하는 것은 가능하다.
  • 포트 번호는 일반적으로 정해져 있지만 무조건 지켜야 하는 것은 아니다. 

Well-Known 포트

  • 잘 알려진 프로그램들이 어떤 포트 번호를 쓰는지 지정되어 있는 것
  • ~ 1023 

Well-Known Port

 

Registered 포트

  • 예약된 포트
  • 대표적으로, DB 서버 
  • 1024 ~ 49151

 

Dynamic 포트

  • client가 쓸 수 있는 포트
  • 일반 사용자들이 사용하는 포트
  • 49152 ~ 65535

Dynamic 포트

 

프로그램의 연결 정보

  • 명령어  : netstat -ano 
  • 현재 포트 활성 여부를 나타내는 활성 연결 테이블

다음 강의를 정리했습니다.

https://www.youtube.com/watch?v=tG0ldt4sBzY&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=16&ab_channel=%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B4%EC%84%9C%EB%B0%B0%EC%9A%B0%EB%8A%94IT

'Computer Science > 네트워크' 카테고리의 다른 글

TCP 프로토콜  (3) 2023.11.10
UDP 프로토콜  (0) 2023.11.09
IPv4 조각화  (0) 2023.11.09
라우팅 테이블  (1) 2023.10.28
먼 컴퓨터와 통신하는 방법 : IPv4 & ICMP ( 3 Layer )  (3) 2023.10.28

조각화란?

  • 큰 IP 패킷들이 적은 MTU( Maximum Transmisson Unit : 데이터 최대 전송 단위 )를 갖는 링크를 통하여 전송되기 위하여 여러 개의 작은 패킷으로 쪼개어 전송하는 것
  • 일반적으로 조각화되면, 최종 목적지에 도착할 때까지 재조립되지 않는다.
  • IPv4발신지 뿐만 아니라 중간 라우터에서도 IP 조각화가 가능
  • IPv6 IP 단편화발신지에서만 가능

 

First Fragmentation

  • MTU3300Byte
  • 이 때, DataIPv4의 크기인 20Byte를 뺀 3280Bytes 단위로 쪼개진다.
  • MF( More Fragment ) : 내 뒤에 패킷이 더 있는지 표시
  • Offset : 이전 조각보다 데이터 크기만큼 떨어져 있음 ( 3280을 8로 나눠서 쓴 값 ) 
  • Fragment4  : 마지막 패킷이므로 MF0, Data는 남은 Bytes( 2140Bytes )가 됨
  • 조각화 된 패킷들은 각각 IP 프로토콜이 Encapsulation되어 있는 상태 ( 페이로드는 Data )
  • 쪼개진 데이터들의 ID값같으므로, 받는 쪽에서 flagOffeset을 이용해 데이터를 재조립함 

 


다음 강의를 정리한 내용입니다.

https://www.youtube.com/watch?v=_AONcID7Sc8&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=14&ab_channel=%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B4%EC%84%9C%EB%B0%B0%EC%9A%B0%EB%8A%94IT

'Computer Science > 네트워크' 카테고리의 다른 글

UDP 프로토콜  (0) 2023.11.09
4계층 ( Transport Layer )  (0) 2023.11.09
라우팅 테이블  (1) 2023.10.28
먼 컴퓨터와 통신하는 방법 : IPv4 & ICMP ( 3 Layer )  (3) 2023.10.28
ARP 프로토콜  (1) 2023.10.26

라우팅 테이블 

  • netstat -r  명령어로 확인 가능
  • 네트워크 대역을 찾아가는 지도와 같음

다른 네트워크와 통신하는 과정

다른 4개의 네트워크 대역이 존재하는 상황 ( A와 B가 통신하는 방법 )

 

A라는 컴퓨터가 다른 네트워크 대역에 있는 B와 통신하는 과정

1.  A는 자신의 라우팅 테이블을 확인한다.
     ( 이 때, B의 네트워크 대역( 192.168.20.0/24 )이 있어야지만 통신이 가능함 )

2. AICMP 요청을 위한 프로토콜 작성

  • ICMP 프로토콜 Type에서 요청은 08, 응답0임 

  • IP 프로토콜 작성

  • Ethernet 프로토콜 작성 ( 목적지 MAC 주소는 무엇으로 세팅될까? )
    • Ethernet가까운 곳 통신을 위한 프로토콜
    • 라우팅 테이블을 확인하면 B의 IP로 가기 위해서는 192.168.10.1로 가야함
    • 즉, Ethernet 프로토콜은 게이트웨이MAC 주소 ( 192.168.10.1 )로 설정됨

3. 패킷 전송

  • Switch2계층 장비2계층Ethernet까지만 까보고 목적지 MAC으로 패킷을 전달함 ( C에게 )

4. C( MAC 주소가 cc : cc : cc : cc : cc :cc 인 장비 )는 다른 네트워크 대역으로 패킷 전달

  • 먼저, 2계층Ethernet의 목적지 MAC을 확인하여 올바르게 온 것인지 확인
  • 3계층 IPv4IP 주소가 자신의 IP와 다르므로 자신의 라우팅 테이블을 확인

  • Ethernet 프로토콜만 다시 만들어서 라우팅 테이블에 해당하는 MAC 주소목적지를 변경해서 보냄

5. 3계층 장비라우터패킷을 받음

  • 3계층까지 확인해보고 자신의 라우팅 테이블 보고 Ethernet 프로토콜을 수정해서 보냄

6. B공유기패킷을 받고, 안쪽 네트워크 대역으로 보내줘야 하므로 Ethernet 프로토콜을 다시 작성해서 보냄

7. Switch를 거쳐 B에게 전송 

  • BICMP 요청이 왔음을 확인하고 Type00으로 바꿔 반대로 다시 수행하여 A에게 응답 전달

이 과정에서 중간중간 MAC 주소를 모른다면 ARP로 MAC을 알아오는 과정이 있다
Ethernet 프로토콜은 네트워크 대역이 변경될 때마다 재작성된다.

다음 강의를 정리했습니다.

https://www.youtube.com/watch?v=tVntagSJctc&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=13&ab_channel=%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B4%EC%84%9C%EB%B0%B0%EC%9A%B0%EB%8A%94IT

'Computer Science > 네트워크' 카테고리의 다른 글

4계층 ( Transport Layer )  (0) 2023.11.09
IPv4 조각화  (0) 2023.11.09
먼 컴퓨터와 통신하는 방법 : IPv4 & ICMP ( 3 Layer )  (3) 2023.10.28
ARP 프로토콜  (1) 2023.10.26
OSI 3계층 ( Network Layer )  (2) 2023.10.23

IPv4 프로토콜

IPv4가 하는 일

  • 네트워크 상에서 데이터를 교환하기 위한 프로토콜
  • 데이터가 정확하게 전달될 것을 보장하지 않는다. ( 4계층에서 재전송 등으로 보장해줌 )
  • 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다.
  • 신뢰성 있는 통신은 4계층이 담당

 

IPv4 프로토콜의 구조

  • 20Byte + ( 옵션:: 4Byte씩 추가로 최대 10개 붙을 수 있고 일반적으로 옵션 없이 사용 ) 
  • Source Address : 출발지 IP 주소
  • Destination Address : 목적지 IP 주소
  • Version : IP 버전 ( IPv6는 구조 자체가 달라서 사실상 0x4로 고정 )
  • IHL : IP 프로토콜의 헤더의 길이( 20 ~ 60Byte )를 4로 나눈 수로 씀.
    ex ) 20인 경우 = 0101  
  • TOS : 서비스의 형식이지만 지금은 사용하지 않아 전부 0으로 비워져있음.
  • Total Length : 상위 계층으로부터 Encapsulation 해서 내려온 페이로드까지 합친 전체의 길이 
  • Identification & IP Flags & Fragment Offset : 데이터가 경우 작게 쪼개서 보내는 데 이때 쪼개진 데이터를 알아보기 위해 사용되는 값
    • Identification : 쪼개진 데이터를 식별하는 ID , 쪼개진 애들끼리는 같은 ID를 갖는다.
    • IP Flags : 3bit
      ( X : 안씀 / Don't fragmentation : 패킷을 보내는 사람이 데이터를 쪼개지 않고 보낸다고 명시하는 것. 그러나 최대 전송 단위보다 큰 경우 전송이 안 됨 / More fragmentation: 조각화가 일어나서 더 많은 패킷이 있으니 기다리라고 알려주는 표시 )
    • Fragment Offset : 받는 쪽에서는 쪼개진 순서대로 오지 않을 수 있으므로, 순서를 알 수 있게 시작 부분으로부터 얼마만큼 떨어진 조각인지 표기하는 부분
  • Time To Live(TTL) : 네트워크 패킷의 수명으로 특정 숫자값, 3계층 장비인 라우터 등을 하나씩 넘어갈 때마다 1씩 줄어듦. 인터넷에 네트워크 패킷이 계속 살아있는 것을 방지한다.
    • Protocol : 상위 프로토콜이 어떤 것인지 알려줌 ( ICMP(3계층 01), TCP(4계층 06), UDP(4계층 11))
  •  Header Checksum : 헤더에 오류가 있는지 없는지 확인하는 값

 

ICMP 프로토콜

ICMP가 하는 일

  • ICMP ( Internet Control Message Protocol , 인터넷 제어 메시지 프로토콜 )로 상대방과 통신이 되는지 안 되는지 확인하는 역할
  • 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송 받는 데 주로 쓰인다
  • 프로토콜 구조의 Type과 Code를 통해 오류 메시지를 전송 받는다

ICMP 프로토콜의 구조

 

  • Type : 대분류 중 아래 5가지는 알아두기
    • 0, 8 ( Echo Reply, Echo ) : 기본적인 통신 확인에 사용되는 타입으로 8로 요청 0으로 응답
    • 3 ( Destination Unreachable ) :  목적지에 도달하지 못한 상태 ( 가는 경로에서 문제가 발생 )
    • 11 ( Time Exceded ) : 목적지까지 갔는데 응답을 받지 못한 상태 ( 상대방의 문제 :: 상대 방화벽 등 )
    • 5 ( Redirect ) : Redirect는 예전에 쓰던 것으로 원격지에 있는 상대방의 라우팅 테이블을 ICMP로 수정할 때 사용
  • Code : 소분류

다음 강의를 정리한 내용입니다.

https://www.youtube.com/watch?v=_i8O_o2ozlE&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=9&ab_channel=%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B4%EC%84%9C%EB%B0%B0%EC%9A%B0%EB%8A%94IT

https://www.youtube.com/watch?v=JaBCIUsFE74&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=10&ab_channel=%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B4%EC%84%9C%EB%B0%B0%EC%9A%B0%EB%8A%94IT

'Computer Science > 네트워크' 카테고리의 다른 글

IPv4 조각화  (0) 2023.11.09
라우팅 테이블  (1) 2023.10.28
ARP 프로토콜  (1) 2023.10.26
OSI 3계층 ( Network Layer )  (2) 2023.10.23
LAN에서 통신하는 방법 (OSI 2계층이 하는 일)  (1) 2023.10.23

+ Recent posts