ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 외워서 끝내는 네트워크 핵심 이론 - 섹션 3
    공부/네트워크 2023. 6. 20. 19:06

    *IP

    L2 : MAC 주소, 48bit

    L3 : IPv4 32bit = 8bit * 4

    IPv4중 24bit는 Network ID  / 8bit는 Host ID 이다

     

    *packet

    - L3 IP Packet

    - Header 와 payload로 나뉘며 이는 상대적인 분류이다

    - 최대크기는 MTU = 1500 bytes, 1.4KB

    - Header = 송장

    - Payload = 택배박스

     

    *Encapsulation(캡슐화)

    - 물건을 상자에 포장한다

    - 데이터를 단위화 한다

    - 계층이 내려갈수록 캡슐화가 한단계씩 생긴다

    - Decapsulation는 반대개념이다

     

    *패킷의 생성과 전달

    송신자 -> 책 -> 상자 -> 송장 -> 택배기사 -> 집 -> 송장 -> 상자 -> 책

    Process -> Data ->     Packet  -> Gateway ->       Host       -> Port(Process)

    - Process에서 Process로 전달 된다

     

    *계층별 단위

    - L1 ~  L2  : Frame

    - L3           : Packet

    - L4           : Segment

    - L5 ~  L7  : Stream(socket)

     

    *파일 전송 과정

    1. Process에서 전송할 데이터를 Buffer 나눠서 에 복사한다

    2. 복사된 데이터를 Socket I/O Buffer에 Send 한다

    3. Socket I/O Buffer는 나눠 받은 데이터를 다시 합친다

    4. TCP는 Socket I/O Buffer의 데이터를 Segmentation 하여 Segment 한개씩 나누며 번호를 부여한다

    5. IP는 Segment를 패킷에 담아 외부로 전송한다

    6. 전송받은 PC는 역순으로 Segment를 받아 Socket I/O Buffer에 Read를 한다

    7. 전송을 받은 Process는 받은 Segment의 번호를 송신측에 현재의 Buffer의 여유 공간과 함께 ACK를 보낸다

    8. 송신측은 몇개를 더 보낸 상태에서 ACK를 대기하고 ACK를 받으면 다시 더 데이터를 송신한다

     

    *파일 전송 과정중 생길 수 있는 문제

    1. Loss : 데이터 유실

    2. Re-trans : 데이터 중복

        - 수신측에서 ACK가 없어 전송을 못 받았다고 판단해 다시 재 전송을 했느나 받았던 상태

    3. Out of Order : 잘못된 순서

    4. Zero Window : 수신측에 Buffer의 여유 공간이 없는 상황 

     

    *IPv4 Header 

    - 패킷의 Header, payload 중 Header 부분

    - 패킷의 크기는 MTU(1500byte, 1.4KB)

     

    - 1행

    Vesion : 패킷의 버전 

        ex)IPv4

    IHL : 해더의 길이, 보통 20byte

    Total Length : 패킷의 길이

    - 3행(단편화와 관련)

    TTL :  패킷이 네트워크 상에서 소모할수 있는 비용

        - 소모시키는 비용은 Hop이다

    Protocol : 패킷의 해석을 위한 정보

        ex) TCP, UDP 등 프로토콜의 번호

    Header Checksum : 패킷을 손상 여부 확인을 위한 정보

    - 4행

    Source Address : 출발지 IP 주소

    - 5행

    Destination Address : 목적지 IP 주소

     

    *Subnet Mask

    - Net ID와 Host ID를 구분하기 위해 사용된다

    -ex) IP 주소와 255.255.255.0을 AND 연산을 하면

    0을 제외한 나머지 부분은 IP 주소와 동일하게 나오고

    0에 나온 주소로 Host를 구분한다

    - CIDR : SubNet Mask를 1의 갯수로 구분해서 나눈다

    ex) 192.0.01/24 1이 연속으로 24개 있다

     

    * Broadcast

    Host ID가 모두 255인경우

    같은 네트워크 대역에게 모두 데이터를 보낸다

     

    * LoopBack Address

    - Host자신을 가리키는 주소

    - 내 프로세스 통신을 위한 주소

    - IPC 사용

    - L4 계층에서 이하로 나가지 않는다

     

    *TTL(Time To Live)

    - 인터넷은 라우터의 집합체라고 할 수 있는 논리 네트워크

    - 인터넷 ≒ Route + DNS

    - 패킷은 인터넷 상에서 경로에 따라 통신을 한다

    - TTL은 인터넷 상에서 패킷 무한히 돌아 다니지 못하도록 제한을 둔다

    - 무한히 돌면 네트워크에 문제가 생긴다

     

    *단편화

    - MTU는 통상 1500Byte이다

    - 만약 수신측에서 1400Byte 이면 보내는 송신측에서 2개로 나누어 보낸다

    - 나눠진 둘은 거의 동일 하나 디테일한 옵션에 차이가 있다

    - 수신측에서 두개를 받아 직접 합친다

    - 단편화가 일어 나지 않도록 처음부터 낮춰서 보내면 문제가 해결된다

    - 요즘은 단편화가 거의 일어나지 않지만 VPN IPSEC 으로 인해 생길 수 있다

     

    *DHCP

    - ISP : IP 주소를 서비스 하는 회사

    - IP, Subnet Mask, Gateway , DNS 인터넷 사용을 위한 필수 설정

    - DHCP는 주소를 할당하는 서버와 할당받으려는 클라이언트로 구성 되어 있어

      자동으로 내가 사용하는 네트워크 사용에 맞는 설정을 준다

    - DHCP 요청 방법

       1. 같은 네트워크 대역에 있는 DHCP 서버를 찾기위해 클라이언트는 Broadcast를 보낸다

       2. 찾아진 DHCP는 클라이언트에게 인터넷 설정을 위한 정보를 준다

       *Broadcast의 한계선은 Gateway 이다

     

    *ARP

    - A(Address) : IPv4, MAC 주소에 해당된다

    - IP주소로 MAC주소를 알려할 때 사용된다

        ex) ARPReq = Gateway의  MAC 주소를 알려고 할때, DHCP에서 알려주지 않는다

    - Gateway의 MAC 주소는 인터넷 통신을 위해 반드시 필요하다

    - L2계층에서 보내는 데이터의 목적지의 주소는 Gateway의 MAC주소이다

    - Gateway를 통해 인터넷 상으로 데이터가 전달이 된다

    - Gateway는 L3의 적혀있는 IP 주소를 보고 인터넷으로 전송한다

     

    *Ping RTT(Round Trip Time)

    - Ping은 RTT를 측정하는 프로그램이다

    - RTT는 서버와의 통신의 걸리는 시간이다

    - ICMP를 사용

    - DOS 공격으로 악용해 사용가능하다

    댓글

Designed by Tistory.