Network - 1

Network

  1. OSI 7계층

    • 응용 계층(Application Layer) - FTP, HTTP, SSH

    • 표현 계층(Presentation Layer)

    • 세션 계층(Session Layer)

    • 전송 계층(Transport Layer) - TCP, UDP

    • 네트워크 계층(Network Layer) - IP

    • 데이터 링크 계층(Data Link Layer) - Ethernet

    • 물리 계층(Physical Layer)

  2. TCP/IP 4계층

    • Application - 응용 계층, 표현 계층, 세션 계층

    • Transport - 전송 계층

    • Internet - 네트워크 계층

    • Network Interface - 데이터 링크 계층, 물리 계층

  • 물리 계층

    • Lan cable(CAT5, UTP(Unshielded Twisted Pair), RJ-45(커넥터))

    • Repeater : 거리가 멀어지면 노이즈가 생겨 약해진 신호를 증폭

  • 데이터 링크 계층

    • NIC(Network Interface Card) : 랜 카드. 네티워크 어댑터

    • MAC(Media Access Control) : NIC의 하드웨어 주소

      1
      2
      3
      4
      ex) 40 - 49 - 0F - 80 - C3 - 2F

      >> 40 - 49 - 0F = 제조사
      >> 80 - C3 - 2F = NIC 번호
    • 라우터를 기준으로 같은 공간에 있다면 LAN(Local Area Network)

    • MAC Address는 LAN에서 컴퓨터 주소를 찾을 때만 사용

    • Destination MAC Address : 6 bytes, 패킷 수신 NIC

    • Source Mac Address : 6 bytes, 패킷 송신 NIC

    • MTU(Maximum Transmission unit) [최대 전송 단위] : 1500 bytes

      • 실제적으로는 조금 더 작음
  • 네트워크 계층

    • ARP(Address Resolution Protocol)

      • 브로드캐스트로 어떤 IP를 사용하는 호스트의 MAC 주소를 알아냄
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      host1 : 192.168.100.18
      host2 : 192.168.100.63

      host1에서 host2로 정보를 보내고 싶을 때...

      1. 브로드캐스트를 해서 내가 보내고자 하는 IP 주소 즉, host2의 IP 주소를 알아낸다.

      2. host2가 request로 본인의 IP 주소와 MAC 주소를 보낸다.

      3. 그 때 host2로 원하는 정보를 전송 가능하다.

      - ARP Cache를 통해 MAC 주소를 저장해둠(ARP Table)

      - ARP Request : 192.168.100.63은 누구인가?

      - ARP Reply : 내가 192.168.100.63이고 MAC 주소는 이거다.

      이러한 과정을 ARP라고 한다.
    • RARP(Reverse Address Resolution Protocol)

      • 역순 주소 결정 프로토콜

      • ARP와는 반대로 MAC 주소를 가지고 IP 주소를 알아냄

      • 지금은 거의 사라진 개념

    • DHCP(Dynamic Host Configuration Protocol)

      • 동적 호스트 구성 프로토콜

      • IP 주소들을 동적으로 할당할 수 있으며 더이상 사용되지 않는 경우 회수함

    • IP

      • TTL(Time To Live)

        • 데이터의 유효 기간을 나타내기 위한 방법

        • 몇 개의 라우터를 지나면 패킷을 버릴 것인지를 나타냄

        • ex) ttl = 55 <- 55번 지나면 사라짐

      • Source Address : 4bytes, 송신 IP

      • Destination Address : 4bytes, 수신 IP

        1
        [1byte] [1byte] [1byte] [1byte] = 4bytes
      • 1byte에 0 ~ 255

      • Network 주소 = 라우터를 찾는 주소

      • Host 주소 = LAN에 소속되있는 특정 Host(컴퓨터)

      • IPv4, IPv6

    1. 클래스 단위 주소 지정

      1
      class A = [Network ID] [Host ID] [Host ID] [Host ID]
      • Network ID => 0000 0000 ~ 0111 1111(0 ~ 127)

      • 네트워크 주소는 0과 127을 제외한 126개 사용

      • 호스트 주소는 네트워크 주소 당 “0”과 “1”을 제외한 2^24 - 2 = 16,777,214개 사용

        1
        class B = [Network ID] [Network ID] [Host ID] [Host ID]
      • Network ID => 1000 0000 ~ 1011 1111(128 ~ 191)

      • 네트워크 주소는 2^14 - 2 = 16,282개 사용

      • 호스트 주소는 네트워크 주소 당 2^16 - 2 = 65534개 사용

        1
        class C = [Network ID] [Network ID] [Network ID] [Host ID]
      • Network ID => 1100 0000 ~ 1101 1111(192 ~ 223)

      • 네트워크 주소는 2^21 - 2 = 2,097,150개 사용

      • 호스트 주소는 네트워크 주소 당 2^8 - 2 = 254개 사용

      • 0은 네트워크 주소 자기자신이고, 255는 브로드캐스트용 주소

    2. IP 서브넷 주소 지정

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      ex) IP address : 201.175.122.74 => class C

      Subnet mask : 255.255.255.192

      >> (11111111 . 11111111 . 11111111) . (11)(000000)
      >> (Network ID) (Subnet ID) (Host ID)

      IP Address & Subnet mask(AND 연산 수행)

      11001001.10101111.01111010.01001010 -> IP 주소
      11111111.11111111.11111111.11000000 -> Subnet 주소
      -------------------------------------
      11001001.10101111.01111010.01000000 -> 결과
      • 1byte = 255에서는 AND 연산을 수행했을 때 모두 그대로 나오게 된다.

      • 서브넷 마스크 주소가 255.255.255.0이라면…

        • 앞 3bytes는 그대로 주소가 나옴

        • 네트워크 주소는 24개

        • 호스트 주소로 253개 사용 가능

      • 서브넷 마스크 주소가 255.255.255.192라면…

        • 앞 3bytes는 그대로 주소가 나옴

        • 추가로 마지막 byte 자리에서 첫번째와 두번째 자리까지 연산을 수행

        • 네트워크 주소는 26개

        • 호스트 주소로 나머지 자리의 2^6 -2 = 62개 사용 가능

      • 표현 방식 = 201.175.122.74/26

    3. Public IP(공인 IP 주소) vs Private IP(사설 IP 주소)

      • 공인 IP 주소는 유일하기 때문에 주소로 바로 접근이 가능하다.

      • 사설 IP 주소는 반드시 NAT를 통해 접근해야 한다.

      • 하나의 공인 IP 주소를 라우터에 할당하고 사설 IP Network를 구성하여 공인 IP 주소를 공유

        1
        2
        3
        4
        5
        6
        7
        ex) 211.57.44.2(Public) => 192.168.0.1(Private) => 192.168.0.2(Host1)

        192.168.0.4(Host2)

        192.168.0.11(Host3)

        192.168.0.16(Host4)
      • NAT(Network Address Translation)

        • 사설 IP 네트워크에서 192.168.0.2의 Host가 Router 바깥에 있는 서버에 접근할 때…

          • 라우터가 이 Host에게 123.108.157.1(공인 IP 주소의 예)를 만들어줌

          • 바깥 서버와 정보를 주고 받을 수 있게 해줌

        • 바깥 서버는 라우터 안에 있는 Host와 정보를 주고 받을 때…

          • 라우터가 이 Host에게 부여해준 123.108.157.1의 주소로 정보를 주고 받을 수 있다.
      • NAPT(Network Address Port Translation)

        • NAT에 포트 개념이 추가됨

        • 사설 IP와 라우터가 부여하는 공인 IP 뒤에 포트를 추가하여 정보를 주고 받음

        • ex) 192.168.0.2:6000 <- 6000이 포트

        • port란?

          • socket에 할당된 주소

          • 2bytes로 이루어져있으며, 0 ~ 1023은 특정 서비스 포트 의미

      • 포트 포워딩(port forwarding)

        • 하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크

        • 주소 변환(NAT)의 응용

  • 전송 계층

    • Port : 소켓에 할당된 주소로, 특정 프로세스로 데이터를 전달할 수 있다.

    • well-known port

      • 0 ~ 1023 (server)

      • FTP(20), SSH(22), HTTP(80), HTTPS(443)…

    • dynamic port

      • 49152 ~ 65535 (client)
Share