네트워크(1)

yong·2025년 6월 6일

SW 모빌리티 스쿨

목록 보기
4/11

1. 네트워크 구성도

네트워크는 크게 서비스를 제공하는 입장과 서비스를 받는 입장으로 나뉘는데, 서비스를 제공하는 입장은 클라우드나 데이터 센터, 회사 기계실에 서버를 놓고 서비스를 제공하고, 서비스를 받는 입장은 집이나 회사에서 인터넷에 접속하는 경우를 들 수 있다.

2. Protocol

통신 규약으로, 일반적인 프로토콜은 단독으로 사용하지 않고 여러 개를 묶어서 사용하기 때문에 프로토콜 스택이라는 표현을 사용한다.

ex) TCP/IP 스택 : 하나의 프로토콜이 아니라 4개의 계층으로 분리해서 여러 개의 프로토콜 집합으로 구성

표준 협회나 어떤 회사에서 사용하는 지 등에 따라 다양한 프로토콜이 존재했지만 최근에는 복잡하고 산재되어 있던 여러 프로토콜 기술이 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있다.

  • 물리적 측면(데이터 전송 매체, 신호 규약, 회선 규격 등) → 이더넷
  • 논리적 측면(장치들끼리 통신하기 위한 규격) → TCP/IP

3. OSI 7계층과 TCP/IP

OSI 7계층

통신 규약의 표준이 필요하여 탄생한 것으로 네트워크를 개념적으로 나누었으나 요즘에는 거의 사용하지 않고 TCP/IP 프로토콜 스택을 기반으로 한다.
계층과 데이터

계층이름데이터 단위
7ApplicationData
6PresentationData
5SessionData
4TransportSegment
3NetworkPacket
2DataLinkFrame
1PhysicalBit
  • 4계층을 기준으로 아래쪽은 하위 계층(물리적, DataFlow 계층)이라하고 위쪽은 상위 계층(Application 계층)이라고 한다.
  • 개발자는 보통 상위 계층을 고려하기 때문에 하향식으로 네트워크를 바라보고, 네트워크 엔지니어는 하위 계층을 고려하기 때문에 상향식으로 네트워크를 바라본다.

TCP/IP Stack

현재 인터넷의 표준

OSI 7계층별 이해

1계층 : Physical (물리 계층)

물리적 연결과 관련된 정보를 정의하고 전기 신호를 잘 전달하는데 초점이 맞춰져 있다.

  • 사용되는 장비 : Hub, Repeater, Cable, Connector, Tranceiver, TAP

  • 1계층 장비는 주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외한 모든 포트에 같은 전기 신호를 전송한다.

전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리하고 주소 정보를 정의하여 정확한 주소로 통신이 되도록 한다. 출발지와 목적지를 확인하여 내게 보낸 것이 맞는지, 내가 처리해야 하는지에 대한 검사를 수행한다.

  • 사용되는 주소 : MAC Address(물리적인 주소)
  • 사용되는 장비 : Switch, 네트워크 인터페이스 카드(Network Interface Card)
    • 스위치는 단말(Terminal)이 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소 학습(Address Learning) 과정에서 알 수 있다. 이렇게 학습한 데이터를 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩 해준다.

3계층 : Network (네트워크 계층)

논리적인 주소를 이용해서 최적의 경로를 설정하는 라우팅을 수행한다.

  • 사용되는 주소 : IP(논리적인 주소)
    IP를 네트워크 주소(Subnet Mask)와 호스트 주소 부분으로 나누어서 네트워크를 관리한다.
  • 사용되는 장비 : Router, L3 Switch(라우터와 스위치의 역할을 동시에 수행)
    • 3계층을 이해할 수 있는 장비나 단말은 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고, 원격지 네트워크로 가려면 어디로 가야하는지 경로를 지정할 수 있다.

4계층 : Transport (전송 계층)

실제로 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 수행한다.

  • 사용되는 장비 : Load Balancer, Firewall

  • 패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 생길 수 있는데 이런 경우에 바로잡아 주는 역할을 수행한다.

  • 큰 데이터를 통으로(Message) 보내면 전송 시간이 오래 걸리고, 그러다보면 앞의 데이터가 못가서 뒤의 데이터도 밀리게 되므로 데이터를 쪼개서 전송하는데, 이를 Segment라고 한다. Segment를 받는 컴퓨터에서는 이를 다시 조립해야 한다.

5계층 : Session(세션 계층)

접속을 안정적으로 유지하도록 관리하고 작업 완료 후에는 연결을 해제하는 계층으로, 에러로 중단된 통신에 대한 에러 복구와 재전송 또한 수행한다.

  • 접속을 유지하기 위한 정보(토큰, 세션)를 메모리에 저장한다. (보통 서버가 클라이언트를 기억)

6계층 : Presentation(표현 계층)

표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문으로 형식을 맞추어주는 역할을 수행한다. MIME 인코딩이나 데이터 압축, 암호화와 같은 동작이 이루어진다.

7계층 : Application(응용 계층)

애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행하는 계층이다.

  • 대표적인 프로토콜 : FTP, SMTP, HTTP, TELNET

4. 네트워크 연결 구분

네트워크 규모와 범위에 따른 분류

  • LAN(Local Area Network) : 근거리, 소규모 네트워크(홈 네트워크, 사무실용 네트워크 등)
  • MAN(Metro Area Network) : 하나의 도시 규모의 범위를 가지는 네트워크
  • WAN(Wide Area Network) : 원거리 네트워크로 멀리 떨어진 LAN을 서로 연결하거나 인터넷에 접속하기 위한 네트워크 (특별한 경우가 아니라면 직접 구축하기 어려운 범위의 네트워크이므로 대부분 통신사 업자로부터 회선을 임대해서 사용함)
  • PAN(Private Area Network) : 개인 휴대 기기 사이를 연결하는 네트워크

5. 네트워크 회선

인터넷 회선

인터넷 접속을 위해 통신 사업자와 연결하는 회선으로, 통신 사업자와 케이블 연결만으로 인터넷이 가능한 것이 아니라 통신 사업자가 판매하는 인터넷 회선을 사용해야만 인터넷 접속이 가능하다.

전용 회선

가입자와 통신 사업자 간에 대역폭을 보장해주는 서비스로, 대역폭이란 특정 시간동안 네트워크를 통해 전송할 수 있는 데이터의 최대 용량을 뜻한다.

LLCF(Link Loss Carry Forward)
한쪽 링크가 다운되면 이를 감지해 반대쪽 링크도 다운시키는 기능으로, 상대방의 연결이 끊겼음을 알지 못하고 데이터를 계속 전송하는 등의 통신 장애가 발생하는 것을 막기 위한 기능이다. 동축 케이블은 원래 한쪽이 다운되면 다른 한쪽은 다운되지 않기 때문에 LLCF 설정을 해줘야 한다.

인터넷 전용 회선

인터넷 연결 회선에 대한 통신 대역폭을 보장해주는 상품으로 인터넷 속도를 보장한다. 선로 공유 기술을 사용하는 일반 인터넷 회선과 달리 다른 가입자와 경쟁하지 않고 가입자와 통신 사업자의 연결 품질을 보장한다.

VPN(Virtual Private Network) ⭐

물리적으로는 전용선이 아니지만 가상으로 직접 연결한 것과 같은 효과를 만들어내는 네트워크 기술

  • 통신 사업자 VPN : 전용선은 연결거리가 늘어날수록 비용이 증가하므로 통신 사업자는 가입자가 계약된 대역폭을 항상 100% 사용하지 않는 경우 낭비되는 비용을 줄이고자 한다. 가장 대표적인 MPLS VPN(Multi Protocol Label Switching VPN)은 여러 가입자가 하나의 망에 접속되지만 가입자를 구분할 수 있는 기술을 적용하여 전용선처럼 공용회선을 사용하여 비용을 낮춘다.

  • 가입자 VPN : 일반 인터넷망을 이용해 사용자가 직접 가상 전용 네트워크를 구성

6. 네트워크 구성 요소

물리적인 구성 요소

  • NIC(Network Interface Card, 랜카드)
    컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치로, 신호의 형태를 변환하는 (1)직렬화(전기적 신호 ↔ 데이터 신호), 데이터 유실 방지를 위한 통신 중지 요청인 (2)흐름 제어를 수행하고 (3)MAC 주소를 제공한다.
  • 케이블과 커넥터
    인터넷 연결을 위한 무선 사용 빈도가 높아지고 있지만, 회사 네트워크에 접속하거나 서버를 네트워크와 연결하는 것과 같이 신뢰도 높은 통신이 필요한 경우에는 여전히 유선을 사용하고 이때 케이블이 사용된다. 트위스티드 페어, 동축, 광 케이블 등이 있다.
  • Hub
    1계층에서 동작하는 장비로, 거리가 멀어질수록 줄어드는 전기 신호를 재생성해주고(리피터) 여러 대의 장비를 연결할 목적으로 사용한다. 네트워크에 접속된 단말의 주소를 기억하지 못하기 때문에 통신을 할 때 브로드캐스트 방식으로 통신한다. 이는 네트워크 성능이 줄어드는 문제를 피할 수 없다는 문제점을 가진다.
  • Switch
    허브와 동일하게 여러 장비를 연결하고 통신을 중재하는 2계층 장비이다. 허브와 달리 목적지 주소를 기억하기 때문에 한 번 전송한 곳에 데이터를 전송할 때는 브로드캐스트 방식이 아닌 유니캐스트 방식으로 전송한다. VLAN을 통한 네트워크 분할도 가능하다.

Address Learning
목적지를 MAC Address로 기억하는데 이를 MAC Address Table에 해당하는 포트(인터페이스)와 함께 기록하는 과정
✚ MAC Address는 제조회사:일련번호 형태이기 때문에 기억하기 어려워서 이를 그룹화하게 되었고 이를 IP라고 함

  • Router
    3계층에서 동작하는 장비로, 원격지(외부)로 나갈 때 경로 설정을 수행하는데 외부 네트워크를 기억하고 있다가 그곳으로 데이터를 전송한다. 정확한 방향으로 패킷이 전송되도록 경로를 지정하고 최적의 경로로 패킷을 포워딩한다고 표현한다. 최근에는 L3 Switch나 IP 공유기가 이 역할을 대신 수행하기도 한다.

    • 일반적으로 default gateway는 사용할 수 있는 주소의 첫번째 값을 할당
  • Load Balancer
    4계층에서 동작하는 장비이고, 부하를 분산시킬 목적으로 요청을 받으면 실제 처리할 목적지의 주소로 변경을 해서 요청을 처리하는 장비이다. L4Switch로 구현하기도 하고 소프트웨어로 구현하기도 한다.

    • 웹서버를 구축했을 때 성능이 딸리면 성능을 업그레이드하거나 웹서버를 증설할 수 있는데, 웹서버를 증설할 경우 웹서버 앞에 Load Balancer를 둬서 어떤 웹서버가 처리할지 결정하게 한다. 이때 대표 IP는 로드 밸런서가 갖고 로드 밸런서가 각 웹 서버로 패킷의 목적지 IP 주소를 변경해 전송하는 방식으로 여러 대의 웹 서버가 동시에 동작해 서비스 성능을 높여주고, 일부 웹 서버에 문제가 발생하더라도 빠른 시간 안에 서비스가 복구되도록 도와준다.

      사진 출처 : https://nesoy.github.io/blog/Load-Balancer
  • 방화벽/IPS
    정보를 잘 제어하고 공격을 방어하는 목적의 장비

  • 공유기
    공유기는 스위치, 라우터, NAT, 그리고 방화벽 기능을 한곳에 모아놓은 장비

  • 모뎀
    짧은 거리를 통신하는 기술과 먼 거리를 통신할 수 있는 기술이 달라 이 기술들을 변환해주는 장비

7. 통신 방식

Unicast

출발지와 목적지가 1:1로 통신하는 방식이다.

Broadcast

1:All

  • 동일한 네트워크에 존재하는 모든 호스트가 목적지로, 유니캐스트로 통신하기 전에 상대방의 정확한 위치를 알기 위해 사용된다.
  • 송신지가 수신지의 MAC주소를 알지 못하는 경우, 라우터끼리 정보를 교환하거나 새로운 라우터를 찾는 경우에도 이용된다.

Multicast

1:Group
하나의 출발지에서 다수의 특정 목적지로 데이터를 전송한다. 구독이나 화상 회의에서 사용되는 방식이다.

Anycast

1:1

  • 다수의 동일 그룹 중에 가장 가까운 호스트에서 응답하는 등 기준에 맞는 1개의 목적지 호스트에게 전송한다.
  • IPv4에서는 일부만 구현이 가능하고, IPv6에서 모두 구현 가능하다.
  • DNS 설정을 하지 않았을 때 도메인을 해석하기 위해 가장 가까운 DNS를 찾을 때 이용하기도 한다.

8. 주소

MAC Address

MAC Address는 변경할 수 없도록 하드웨어에 고정되어 출하되기 때문에 네트워크 구성 요소마다 다른 주소를 가진다.

  • 제조업체에 하나의 주소 풀을 주고 그 풀 안에서 각 제조업체가 자체적으로 MAC 주소를 할당한다.
  • 48비트의 16진수 12자리로 표현
    • OUI : 앞의 24비트, 제조사 코드
    • UAA : 뒤의 24비트, 제조사에서 할당하는 코드
  • MAC 주소가 동일한 경우도 있을 수 있는데 이 경우에 동일 네트워크만 아니면 통신은 가능하다.
  • 운영체제에서 변경 가능하다.

동작

  • NIC는 자신만의 MAC Address를 가지고 있고 전기 신호가 들어오면 데이터 형태로 변환을 해서 내용을 구분한 후 도착지 MAC Address를 확인해서 자신의 것이면 처리하고 자신의 것이 아니면 폐기한다.
  • 네트워크 상태 모니터링이나 디버그 또는 분석을 위해 무차별 모드로 자신의 것이 아닌 모든 패킷을 처리하는 경우도 있다.

IP Address

3계층에서 사용되는 주소로 사용자가 변경 가능한 논리적인 주소이다.

  • 주소에 레벨이 있어서 그룹을 의미하는 네트워크 주소와 그 안의 호스트를 구별하기 위한 호스트 주소로 구분된다.
    • 네트워크 주소 : 호스트들을 모은 네트워크를 지칭하는 주소로 이 주소가 동일하면 로컬 네트워크
    • 호스트 주소 : 하나의 네트워크에서 호스트를 구분하기 위한 주소

주소 체계

  • IPv4
    4개의 옥텟(8비트)을 .으로 구분하며 10진수로 표현한다.
    0.0.0.0 ~ 255.255.255.255

네트워크 규모에 따른 클래스 분류

  • A Class
    • 네트워크 주소가 8비트 → 2**8 = 128 → A 클래스 네트워크 대역은 128개
    • 호스트 주소가 24비트 → 256*256*256 -2 = 약 1600 → A 클래스 네트워크 내부에서 사용할 수 있는 주소는 약 1600만 개
  • B Class
    • 네트워크 주소가 16비트
    • 호스트 주소가 16비트 → 256*256 - 2 = 65534 → 네트워크 내부에서 실제로 사용할 수 있는 주소는 65534개
  • C Class
    • 네트워크 주소가 24비트
    • 호스트 주소가 8비트 → 256 - 2 = 254 네트워크 내부에서 실제로 사용할 수 있는 주소는 254개
  • D Class : 멀티케스트용
  • E Class : 미래에 사용할 IP로 예약을 해둔 것

첫 번째 주소는 해당 네트워크를 의미하는 주소이고, 마지막 주소는 브로드캐스트 주소로 사용되기 때문에 실제 사용 가능한 주소를 계산할 때 2를 빼준다.

클래스별 주소 범위 (Classful)

  • A Class : 0.0.0.0 ~ 127.255.255.255
    첫 번째 비트가 0 → 00000000(2) = 0(10)
    0 0000000.00000000.00000000.00000000 ~
    0 1111111.11111111.11111111.11111111

  • B Class : 128.0.0.0 ~ 191.255.255.255
    두 개의 비트가 10 → 10000000(2) = 128(10)
    10 000000.00000000.00000000.00000000 ~
    10 111111.11111111.11111111.11111111

  • C Class : 192.0.0.0 ~ 223.255.255.255
    세 개의 비트가 110 → 11000000(2) = 192(10)
    110 00000.00000000.00000000.00000000 ~
    110 11111.11111111.11111111.11111111

  • D Class : 224.0.0.0 ~ 239.255.255.255
    네 개의 비트가 1110 → 11100000(2) = 224(10)
    1110 0000.00000000.00000000.00000000 ~
    1110 1111.11111111.11111111.11111111

  • E Class : 240.0.0.0 ~ 255.255.255.255

    (네 개의 비트가 1111 → 11110000(2) = 240(10))

    1111 0000.00000000.00000000.00000000 ~

    1111 1111.11111111.11111111.11111111

Classful과 Classless

Classless 네트워크 등장
IP 부족 문제를 해결하기 위해 등장한 개념으로, 클래스로 IP 대역을 구분하여 관리하는 기존의 방식을 버리고 필요한 만큼만 IP를 나눠서 할당하는 방식을 사용하게 되었다.

이론적으로 IPv4는 43억 개의 주소를 나타낼 수 있지만 실제 사용가능한 개수는 이보다 적고, 시간이 지날수록 IP주소가 고갈되면서 IP 주소 부족 문제가 발생했다. 부족한 IP주소를 최대한 사용하고자 하나의 네트워크 대역에서 사용되지 않는 IP를 다른 네트워크에서 사용하게 하려고 해도 Classful하게 네트워크 대역을 구분하면 남는 IP 주소를 사용할 수 없다. ⇒ Classless 네트워크

IP 부족 문제를 해결하기 위해 등작한 3가지 방법
1. CIDR(Classless Inter-Domain Routing) 기반 주소 체계
2. PrivateIP와 NAT
3. IPv6

  • CIDR
    CIDR 기반의 주소 체계는 서브넷 마스크라는 개념을 도입해서 네트워크의 규모를 원하는 대로 나누어서 낭비없이 사용할 수 있도록 한다. 원래 클래스보다 작게 쪼개는 것을 서브네팅, 원래 클래스보다 더 크게 만드는 것을 슈퍼네팅이라고 한다.

    서브넷(Subnet Network, 서브넷 네트워크)
    하나의 네트워크를 쪼개 만든 작은 네트워크 단위로, IP 주소와 서브넷마스크의 AND 연산을 통해 구할 수 있다.

    서브네팅(Subnetting)
    하나의 네트워크를 서브넷으로 쪼개는 행위

    넷마스크(Netmask)
    IP 주소의 네트워크 부분과 호스트 부분을 구분하게 하는 값으로 네트워크 주소 부분의 비트는 1로, 호스트 주소 부분의 비트는 0으로 치환한 32bit 문자열이다. IP 주소와의 AND 연산을 통해 네트워크 주소를 얻을 수 있다.

    서브넷마스크(Subnet Mask)
    서브네팅을 위해 사용하는 넷마스크로, 이를 사용하여 쪼개진 네트워크 주소를 서브넷 네트워크라고 한다.
    표기법
    10진수 표기법 : 192.168.0.1 255.255.255.0
    CIRDR 표기법 : 192.168.0.1/24(왼쪽부터 나열된 1의 수가 24개)
    ⇒ 둘 다 IP 주소가 192.168.0.1이고 서브넷 마스크는 255.255.255.0이라는 의미

    클래스별 기본 서브넷 마스크
    A 클래스 : 255.0.0.0
    B 클래스 : 255.255.0.0
    C 클래스 : 255.255.255.0

    ✏️ 192.168.0.0/29는 어떤 의미일까?
    /29는 서브넷마스크의 네트워크 부분을 나타내는 1의 개수로 서브넷 마스크가 11111111.11111111.11111111.11111000 ⇒ 255.255.255.248임을 나타낸다.
    즉, 192.168.0.0/29 == 192.168.0.0 255.255.255.248이고 호스트 주소를 나타내는 0이 3개이므로 각 서브넷(네트워크)마다 2**3 = 8개의 컴퓨터에 IP를 할당할 수 있음을 의미한다.
    ⇒ 192.168.0.0/29는 네트워크 주소가 192.168.0.0이고 192.168.0.1~192.168.0.6의 IP 주소를 가지는 호스트(6개), 192.168.0.7을 브로드캐스트 주소를 가지는 서브넷(네트워크)를 표현한 것이다.
    192.168.0.0~192.168.0.7의 8개의 IP 주소를 다 써서 표현하는 것보다 훨씬 간단하다는 장점이 있다.

  • NAT와 PrivateIP 주소 이용
    Classless하게 IP 주소를 사용해도 부족해서 등장한 것이 Private IP(사설 IP)로, 현재는 Classless한 IPv4와 Private IP를 같이 사용하고 있다.

    - Public IP와 Private IP
    Public IP : 외부에서 구별하기 위한 IP
    Private IP : 내부 네트워크(같은 네트워크 대역)에서 각 컴퓨터를 구별하기 위한 IP

    Private IP는 외부에서 구별하기 위한 용도로는 사용 불가하기 때문에 네트워크 내부의 컴퓨터가 외부와 통신할 때는 해당 네트워크의 public ip로 변환돼서 나가는데 이를 NAT라고 한다. 실제 인터넷 세상에서는 공인IP로만 통신하기 때문에 외부 네트워크 대역에서는 사설IP 대역이 보이지 않는다.
    A Class : 10.0.0.0 ~ 10.255.255.255
    B Class : 172. 16.0.0 ~ 172.31.255.255
    C Class : 192.168.0.0 ~ 192.168.255.255

    IP를 아껴쓰기 위한 목적도 있지만, 인터넷은 할 필요가 없지만 내부 통신은 해야할 때를 위해 private ip를 사용하기도 한다.

    - NAT(Network Address Translation)
    주소를 변환해서 사용하는 기술로, 내부에서는 Private IP를 사용하고 인터넷을 사용할 때는 Public IP로 변환하는 경우에 주로 사용한다.

Bogon IP
IP 주소를 할당하는 최상위 기구인 IANA가 여러가지 목적으로 예약해놓은 공인 IP로, Bogon IP는 라우터에 정보가 존재하지 않는다. 이 IP 대역의 통신 시도가 있다면 해킹을 목적으로 한 IP Spoofing일 가능성이 높다.

  • 0.0.0.0/8 : This Network
  • 10.0.0.0/8 : Private IP
  • 100.64.0.0/10 : 캐리어 그레이드 NAT(통신 사업자가 Private IP를 부여하기 위해 사용)
  • 127.0.0.0/8 : Loopback
  • 169.254.0.0/16 : Link Local(인터넷에 연결이 안된 경우 할당받는 IP)
  • 172.16.0.0/12 : Private IP
  • 192.0.0.0/24 : IETF 프로토콜 할당
  • 192.0.2.0/24 : 테스트용
  • 192.168.0.0/16 : Private IP
  • 198.18.0.0/15 : 네트워크 인터커넥트 디바이드 벤치마크 테스트
  • 198.51.100.0/24 : 테스트용
  • 203.0.113.0/24 : 테스트용
  • 224.0.0.0/4 : 멀티 캐스트 용
  • 240.0.0.0/4 : 예약
  • 255.255.255.255/32 : 브로드캐스트

9. TCP와 UDP

4계층(전송 계층) 프로토콜로, 목적지 단말 안에서 동작하는 여러 애플리케이션 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 만들기 위한 프로토콜

port

컴퓨터 내에서 동작하는 애플리케이션을 구분하기 위한 번호로 0~65535까지 존재한다.

  • Well Known Port(0~1023번) : IANA에 등록되어 있고 잘 알려져 있는 포트
    ex) 22번 - SSH, 23번- Telnet, 80번 - HTTP 등

  • Registered Port(1024~49151번) : 애플리케이션에 할당하는 포트로 기업에서 IANA에 등록해서 사용하고 있다.
    ex) 3306번 - MySQL, 8080번 - Tomcat 등

  • Dynamic Port(49152~65535번) : 동적으로 사용하는 임시포트

windows의 경우는 C:\windows\system32\drivers\etc 디렉토리의 protocol 파일과 service 파일에서 확인할 수 있다.

TCP

연결을 미리 만들어 두고 데이터를 분할하고 조립하기 위해서 패킷 번호를 부여하고 수신된 데이터에 대해 응답하는 작업을 수행하는 프로토콜

  • 신뢰성 있는 통신에 사용 (데이터의 손실이 없음을 보장)
  • 번호를 이용해서 통신이 실패한 경우 재전송이 가능
  • 데이터 송수신 속도가 느림
  • 송신부와 수신부를 연결하는 과정을 거치는데, 연결을 시작할 때는 3-way 핸드셰이킹으로, 연결을 종료할 때는 4-way 핸드셰이킹을 함
  • 패킷이 전달되는 회선이 정해져 있는 가상회선 방식으로 패킷을 교환

패킷 교환 방식
가장 많이 사용하는 데이터 통신 방식으로, 가상회선을 이용한 방식과 데이터그램을 이용한 방식이 있다.

  • 가상 회선 방식 : 데이터를 주고받기 전에 패킷을 전송할 경로인 가상 회선을 설정해서 모든 패킷을 같은 경로로 전송한다.
  • 데이터그램 방식 : 패킷마다 최적의 경로로 전송되는 방식으로, 송신부에서 보낸 패킷 순서와 수신부에 도착하는 패킷의 순서가 다를 수 있다.
    이미지 출처 : 기술면접대비 CS전공 핵심 요약집

UDP

일방적으로 보내는 쪽에서 받는 쪽으로 데이터를 전송하고 통신을 종료

  • 데이터 전송을 보장하지 않음
  • 속도가 빠름
  • 음성 데이터나 실시간 스트리밍과 같이 시간에 민감한 애플리케이션 또는 사내 방송이나 증권 시세 데이터 전송에 사용되는 멀티캐스트처럼 단방향으로 다수의 단말과 통신을 하기 때문에 응답을 받기 어려운 환경에서 사용
    (동영상 스트리밍이더라도 넷플릭스나 유튜브와 같이 시간에 민감하지 않은 단일 시청자를 위한 연결은 TCP를 사용)
  • 송신부와 수신부 간 연결을 하지 않고(비연결형 서비스) 데이터그램 형태의 통신을 지원
TCPUDP
연결 지향비연결형
오류 제어 수행오류 제어 수행하지 않음
흐름 제어 수행흐름 제어 수행하지 않음
유니캐스트유니캐스트, 멀티 캐스트, 브로드캐스트
Full Duplex(보내고 받는게 동시에 가능)Half Duplex(ex 무전기)
데이터 전송실시간 트래픽 전송

10. ARP(Address Resolution Protocol)

OSI 7계층 중 2, 3 계층이 주소를 가지고 있고 통신할 때 목적지를 찾아갈 수 있도록 해주는데 2계층에서 사용하는 MAC Address는 하드웨어 제조업체에서 임의적으로 할당하고, 3계층에서 사용하는 IP Address는 사용자가 직접 할당하거나 DHCP를 이용해서 자동으로 할당되기 때문에 둘은 아무런 관계가 없다. 따라서 이 두 주소를 대응시키는 방법이 필요하고 이것이 ARP 프로토콜이다.

  • 통신은 IP 주소 기반으로 일어나지만 실제로는 MAC 주소를 통해 목적지를 찾고 이때 상대방의 MAC Address를 알아내기 위해 사용되는 프로토콜이 ARP이다
  • 패킷 네트워크에서는 하나의 데이터를 여러 개의 패킷으로 분할해서 전송하는데 패킷을 전송할 때마다 MAC Address를 확인할 수 없기 때문에 과거에 접속했던 곳은 ARP 테이블에 기록해두고 재사용한다. (윈도우에서 arp -a 명령을 통해 arp 테이블 정보 확인 가능)
  • ARP 테이블의 정보를 오래 유지하는 것이 좋지만 실제 IP는 논리적인 주소라서 일정 시간동안 통신이 없으면 자동으로 삭제된다.

GARP(Gratuitous ARP)

  • ARP의 내용을 변경해서 다른 용도로 사용하는 프로토콜로 IP 주소 충돌 감지에 사용한다.
  • 자신의 IP와 MAC Address를 상대방에게 알릴 목적으로 대상자의 IP 필드에 자신의 IP 주소를 채워서 ARP 요청을 수행한다.

IP 주소 충돌 감지
: 원래 네트워크 내부에서 IP주소는 유일하게 할당되어야 하지만 내가 할당받은 IP를 다른 장비가 할당받는 경우가 발생하고, 이렇게 되면 통신을 할 수 없는 상태가 되기 때문에 IP가 네트워크 내에서 이미 사용되고 있는지 GARP를 이용해서 확인하는 것이다. 윈도우의 경우 이런 경우에 ‘IP 충돌’이라는 메시지를 사용자에게 전송한다.

RARP(Reverse ARP)

  • ARP는 IP주소로 MAC 주소를 확인하고자 할 때 사용는 반면, RARP는 MAC 주소는 아는데 IP를 모를 때 사용하는 프로토콜이다.
  • 나 자신의 MAC 주소는 아는데 IP가 아직 할당되지 않아서 IP를 할당해주는 서버에 어떤 IP 주소를 사용할지 물어볼 때 사용된다.
  • 과거에 네트워크 호스트 주소 할당에 사용되었지만 제한된 기능으로 인해서 BOOTP와 DHCP로 대체되었다.

11. 서브넷과 게이트웨이

원격지 네트워크와 통신을 할 때는 네트워크 장비의 도움을 받아야 하는데, 이러한 용도의 장비를 게이트웨이라고 한다.

  • 기본 게이트웨이는 3계층(네트워크 계층) 장비가 수행하고 여러 네트워크와 연결되면서 적절한 경로를 지정해 준다.
  • 통신을 할 때 목적지를 보고 게이트웨이로 가야하는지 브로드캐스트 방식으로 동작해야 하는지 결정지어주는 것이 서브넷
profile
꿈틀꿈틀

0개의 댓글