• 모두의 네트워크 정리 PART2

    2023. 7. 1.

    by. 웰시코더

    반응형

    - 모두의 네트워크를 읽고 전반적인 정리 및 요약을 한다.


    3.물리 계층 : 데이터를 전기 신호로 변환하기

    • 데이터를 송수신할 때 0과 1을 전기신호로 변환해야 한다.
    • 전기신호에는 아날로그 신호디지털 신호가 있다.
    • 송신측에서 0과 1의 집합을 전기신호로 변환해서 전송 하고, 수신측에서 전기신호를 0과 1의 집합으로 복원한다.
    • 컴퓨터는 네트워크 통해 송수신을 할 수 있도록 랜카드가 있다. 랜카드가 전기신호로 전송 및 변환해준다.
    • 네트워크 전송 매체는 유선과 무선으로 나뉘어지며, 유선에는 트위스트 페어 케이블과 광케이블 등이 있다.
    • 트위스트 페어 케이블(twisted pair cable)은 일반적으로 랜 케이블이라고 한다. UTP와 STP로 나뉜다.
    • UTP는 Unishilded Twist Pair, STP는 Shileded Twist Pair이다. 말그대로 전자는 실드로 보호되어있지 않고 후자는 실드로 보호되어 있다는 의미다. 실드는 외부 노이즈를 막는 역할을 하며, 실드가 없는 UTP가 저렴하기 때문에 많이 사용된다.
    • 랜케이블 양쪽에 딸깍하는 커넥터를 RJ-45라고 부른다.
    • 랜케이블은 다이렉트 케이블크로스 케이블로도 나눌 수 있다. 컴퓨터 간 연결시에는 크로스 케이블로 연결해야 송수신 충돌이 안 난다.
    • 물리계층 장비에는 리피터와 허브가 있다.
    • 리피터는 전기신호를 정형하고 증폭하는 기능을 가진 중계 장비이다. 요즘은 쓰지 않는다.
    • 허브는 포트를 여거 개 가지고 있고 리피터 허브라고도 불린다. 리피터는 일대일 통신만 가능하지만 허브는 여러대와 통신 가능하다.
    • 허브도 전기신호를 정형하고 증폭하는 기능을 한다. 그러나 허브는 송신측 데이터를 허브에 연결된 다른 컴퓨터 모두에게 수신된다. 그래서 더미 허브라고 불린다. 그 대책으로 스위치가 나왔다.

     

    4.데이터 링크 계층 : 랜에서 데이터 전송하기

     

    1)데이터 링크 계층의 역할과 이더넷

    • 랜에서 데이터를 주고 받으려면 데이터 링크 계층 기술이 필요하다.
    • 데이터 링크 계층은 네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층이다.
    • 그 규칙 중 가장 많이 사용되는 것이 이더넷이다.
    • 이더넷은 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용한다.
    • 허브에서 이더넷 규칙에 따라 데이터에 목적지 정보를 추가해 보내고 목적지 이외 컴퓨터는 데이터를 받아도 무시하게 되어 있다.
    • 허브는 데이터를 모든 포트에 보내기만 해서 충돌이 날 수 있다. 그래서 이더넷은 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조로 되어 있다. 데이터가 동시에 케이블을 지나지 않도록 시점을 조절하는데 이 방법을 CSMA/CD라고 한다.
    • CSMA/CD에서 CS는 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르는지 확인하는 규칙, MA는 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙, CD는 충돌이 발생하고 있는지를 확인하는 규칙이다.
    • 효율이 좋지 않아 지금은 CSMA/CD를 사용하지 않으며 스위치를 사용한다.

     

    2)MAC주소의 구조

    • 랜카드에는 MAC주소가 정해져 있다. 제조할 때 새겨지는 고유한 물리 주소다.
    • 데이터 링크 계층에서 이더넷 헤더트레일러를 붙이는데, 이더넷 헤더에는 목적지 MAC 주소, 출발지 MAC주소, 유형으로 구성되어 있다. 유형은 이더넷으로 전송되는 상위계층 프로토콜 종류를 나타낸다.
    유형 번호 프로토콜
    0800 IPv4
    0806 ARP
    8035 RAP
    814C SNMP over Ethernet
    86DD IPv6
    • 이더넷은 트레일러라는 것도 붙는데, FCS라고 한다. 데이터 전송 도중 오류 발생 여부를 확인하는 용도다.
    • 이더넷 헤더와 트레일러가 추가된 데이터를 프레임이라고 한다.

     

    3)스위치의 구조

    • 데이터 링크 계층에서 동작하고 L2 스위치라고 한다.
    • 스위치 내부에는 MAC 주소 테이블이 있다. 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터베이스다.
    • 처음에는 MAC주소 테이블에 포트와 MAC주소 매핑이 없기 때문에 모든 포트에 프레임이 전송되는데, 이를 플러딩이라고 한다.
    • MAC 주소가 등록되어 있으면 목적지 컴퓨터에만 데이터가 전송되고, 이를 MAC 주소 필터링이라고 한다.

     

    4)데이터가 케이블에서 충돌하지 않는 구조

    • 통신 방식으로는 전이중 통신 방식, 반이중 통신 방식이 있다.
    • 전이중 통신 방식은 데이터를 동시에 전송해도 충돌이 발생하지 않는다. 반이중 통신 방식은 데이터를 동시에 전송하면 충돌한다.
    • 컴퓨터끼리 랜케이블(크로스케이블) 연결시 전이중 통신 방식이 된다.
    • 컴퓨터 2대를 허브에 연결하면 허브는 송수신이 나누어져 있지 않기 때문에 반이중 통신 방식이 된다.
    • 스위치는 충돌이 일어나지 않는 구조로 되어 있어서 전이중 통신 방식으로도 데이터를 주고 받는다.
    • 충돌도메인이란 충돌발생시 영향이 미치는 범위를 의미한다. 허브는 허브에 연결되어있는 컴퓨터 전체가 충돌도메인이다.
    • 반면 스위치는 데이터를 동시 송수신이 가능하기 때문에 충돌도메인이 컴퓨터 각자의 범위다.
    • 충돌도메인 범위가 넓을수록 네트워크가 지연된다.
    • ARP는 목적지 컴퓨터의 IP주소를 이용하여 MAC주소를 찾기 위한 프로토콜이다.
    • 출발지 컴퓨터가 목적지 주소를 모르면 MAC주소를 알아내기 위해 네트워크에 브로드캐스트를 하는데 이를 ARP 요청이라고 한다. 지정된 IP주소를 가진 컴퓨터는 MAC주소를 응답하는데 이를 ARP 응답이라고 한다.
    • 출발지 컴퓨터에서 MAC주소를 얻은 후에 MAC주소와 IP주소 매핑정보를 메모리에 보관하는데 이걸 ARP 테이블이라고 한다. 이후 이 테이블을 참고하여 전송된다.

     

    5)이더넷 종류와 특징

    • 이더넷은 케이블 종류나 통신 속도에 따라 다양한 규격으로 분류된다.
    규격 이름 통신 속도 케이블 케이블 최대 길이 표준화 연도
    10BASE5 10Mbps 동축케이블 500m 1982년
    10BASE2 10Mbps 동축케이블 185m 1988년
    10BASE-T 10Mpbs UTP 케이블(Cat3 이상) 100m 1990년
    100BASE-TX 100Mbps UTP 케이블(Cat5 이상) 100m 1995년
    1000BASE-T 1000Mbps UTP 케이블(Cat5 이상) 100m 1999년
    10GBASE-T 10Gbps UTP 케이블 (Cat6a 이상) 100m 2006년
    • 10BASE-T를 기준으로, 10은 10Mbps 통신속도, BASE는 전송방식, T는 케이블을 의미한다.
    • 동축케이블은 최대길이를 100미터 단위로 표시한다. 10BASE5는 케이블 최대길이가 500m라는 의미다.
    • 10BASE-T처럼 하이픈이 붙고 T가 붙은 것은 UTP 케이블이다.

     

    5.네트워크 계층 : 목적지에 데이터 전달하기

     

    1)네트워크 계층의 역할

    • 다른 네트워크의 목적지로 데이터 전달하려면 네트워크 계층 기술이 필요하다.
    • 데이터 링크 계층의 이더넷 규칙만으로는 다른 네트워크에 데이터 전송이 안 된다.
    • 이 계층에서 다른 네트워크로 데이터 전송하려면 라우터 장비가 필요하다.
    • 라우터는 데이터 목적지가 정해지면 최적 경로를 정해준다.(L3 스위치랑 다름)
    • 다른 네트워크에 데이터를 보내려면 MAC주소가 아니라 IP 주소가 필요하다.
    • IP주소는 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있도록 해주는 주소다.
    • IP주소를 통해 어떤 경로로 보낼지 라우팅한다.
    • 라우터에는 라우팅 테이블이 있어서 경로 정보를 등록,관리한다.
    • 네트워크 계층 캡슐화시 IP 헤더가 붙는데 출발지IP주소, 목적지IP주소가 붙는다.(이외에도 많이 붙는다)
    • 데이터에 IP헤더가 붙은 것을 IP 패킷이라고 한다.

     

    2)IP 주소의 구조

    • IP주소는 ISP에게 받을 수 있다.
    • IP주소는 IPv4,IPv6가 있다. 
    • IP주소는 공인IP, 사설IP가 있다. 공인IP는 ISP가 제공한다.
    • 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인IP 주소가 할당되고, 회사나 가정의 랜에 있는 컴퓨터에는 사설 IP 주소가 할당된다.
    • 사설IP는 공인IP 부족 문제를 해결해주며 직접 사설IP할당을 하거나, 라우터의 DHCP(자동할당프로토콜) 기술로 주소할당을 해준다.
    • IP주소는 32비트로 구성되어 있고 10진수로 표시한다.(8비트 단위로 나눠서 표시한다)
    • IP는 네트워크 ID호스트 ID로 구분된다.
    • 네트워크 ID는 어떤 네트워크인지 나타내고, 호스트 ID는 해당 네트워크의 어느 컴퓨터인지 나타낸다.

     

    3)IP 주소의 클래스 구조

    • 네트워크ID를 크게 만들거나, 호스트ID를 크게 만들어 네트워크 크기를 조절할 수 있다.
    • 네트워크 크기는 클래스라는 개념으로 구분한다.
    • 일반 네트워크는 A,B,C클래스를 사용할 수 있다.(D는 멀티캐스트 주소, E는 연구 및 특수용도 주소)
    • A클래스는 IP주소의 처음8비트가 네트워크 ID고 다음 24비트가 호스트ID이다.
    • B클래스는 IP주소의 처음 16비트가 네트워크 ID고 다음 16비트가 호스트 ID이다.
    • C클래스는 IP주소의 처음 24비트가 네트워크 ID고 다음 8비트가 호스트 ID이다.

     

    4)네트워크 주소와 브로드캐스트 주소의 구조

    • IP주소에는 네트워크 주소브로드캐스트 주소가 있다. 
    • 이 두 주소는 컴퓨터나 라우터가 자신의 IP로 사용하면 안 된다.
    • C클래스 기준으로 192.168.1.x를 기준으로 살펴볼 수 있다.
      • 192.168.1.0이 네트워크 주소다. 호스트ID마지막이 0이다. 전체 네트워크의 대표 주소이다.(192.168.1.5는 192.168.1.0 네트워크에 있다고 할 수 있다)
      • 192.168.1.255가 브로드캐스트 주소다. 호스트ID마지막이 255다. 네트워크에 있는 모든 장비나 컴퓨터에게 한 번에 데이터전송이 가능한 IP 주소다.

    5)서브넷의 구조

    • 네트워크를 분할하는 것을 서브넷이라고 한다.
    • A클래스의 호스트 ID 주소는 24비트여서 1677만 7214개를 사용할 수 있다. 여기서 많은 수의 컴퓨터가 브로드캐스트 패킷을 전송하면 혼잡해질 것이다.
    • 이럴 때 작은 네트워크로 분할하여 브로드캐스트 패킷 범위를 좁힐 수 있다. 더 많은 네트워크를 만들어서 IP 주소를 효과적으로 쓸 수 있다.
    • 이처럼 네트워크를 분할하는 것을 서브네팅이라고 하고 분할된 네트워크를 서브넷이라고 한다.
    • 서브네팅을 하면 IP가 네트워크ID, 서브넷ID, 호스트ID로 나누어진다. 원래 호스트ID로 사용하던 부분을 빌려 서브넷ID로 바꾸는 것이다.
    • IP 주소를 서브네팅하면 어디까지가 네트워크ID고 호스트ID인지 판단할 수 없다. 이럴 때 서브넷 마스크 값을 사용한다.
    • 서브넷 마스크란 IP주소의 네트워크 부분만 나타나게 하여 같은 네트워크인지 판별하게 하는 마스크이다.
    • 서브넷 마스크는 A클래스 255.0.0.0, B클래스 255.255.0.0, C클래스 255.255.255.0이 된다.
    •  서브넷 마스크를 프리픽스 표기법으로 표시할 수 있다. C클래스의 경우 네트워크ID가 24비트다. 그러면 /24로 표시할 수 있다.
    • C클래스를 예로 네트워크 ID가 24비트인데 28비트로 변경하면, 4비트를 호스트ID에서 빌리게 된다. 즉 네트워크ID가 24비트, 서브넷 ID가 4비트, 호스트ID가 4비트가 된다.
    • 네트워크 ID와 서브넷 ID 비트를 합쳐 프리픽스로 /28이 된다.

     

    6)라우터의 구조

    • 서로 다른 네트워크끼리 통신하려면 라우터가 필요하다.
    • 다른 네트워크에 데이터 전송하려면 라우터 IP를 설정해야 한다. 네트워크 출입구를 설정하는 것으로 기본 게이트웨이라고도 한다.
    • 192.168.1.0의 기본게이트웨이를 19.168.1.1로 설정할 수 있다.
    • 게이트웨이가 설정되어도 라우팅 기능이 필요하다.
    • 라우터가 경로 정보를 기반으로 현재 네트워크에서 다른 네트워크에 경로를 통해 데이터를 전송할 때 라우팅 테이블이 필요하다.
    • 라우팅테이블은 관리자가 수동으로 등록하거나, 자동으로 등록하는 방법이 있다. 자동등록은 대규모 네트워크에 적합하다.
    • 라우터간에 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라고 한다.

     

    6.전송 계층 : 신뢰할 수 있는 데이터 전송하기

     

    1)전송 계층의 역할

    • 전송계층은 목적지에 신뢰할 수 있는 데이터 전달을 위해 필요하다.
    • 전송 계층에는 오류를 점검하는 기능이 있다. 오류가 발생하면 데이터 재전송을 요청한다.
    • 전송 계층에서는 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능도 있다.(웹브라우저, 메일프로그램 등)
    • 신뢰할 수 있고 정확한 데이터를 전달하는 통신을 연결형 통신이라고하고 효율적으로 데이터를 전달하는 통신을 비연결형 통신이라고 한다.
    • 동영상 같은 것은 신뢰할 수 있고 정확한 데이터를 전송하는 것보다 빠른 전송이 더 필요하기 때문에 비연결형 통신을 사용한다.
    • 연결형 통신 프로토콜은 TCP가 사용되고, 비연결형 통신 프로토콜은 UDP가 사용된다.

     

    2)TCP 구조

    • TCP로 전송할 때 TCP 헤더가 붙는데 이 데이터를 세그먼트라고 한다.
    • TCP 헤더에는 여러가지 정보가 있는데 그 중 코드 비트는 연결 제어 정보가 기록되는 곳이다.
    • 코드 비트는 URG, ACK, PSH, RST, SYN, FIN이 있는데  초깃값은 0이다. 연결을 확립하려면 SYN, ACK가 필요하다.
    • SYN은 연결 요청, ACK는 확인 응답이다.
    • 3-way 핸드셰이크란 SYN와 ACK를 사용하여 연결을 확립하는 것을 말한다. 연결을 끊을 때는 FINACK를 사용한다.

    3)일련번호와 확인 응답 번호의 구조

    • TCP에서 3-way 핸드셰이크 종료 후 실제 데이터를 보내거나 받을 떄는 TCP 헤더의 일련번호확인응답번호를 사용한다.
    • TCP는 데이터를 분할해서 보내는데 일련번호는 송신측에서 수신측에 이 데이터가 몇 번째 데이터인지 알려주는 역할을 한다.
    • 확인 응답 번호는 수신 측이 몇 번째 데이터를 수신했는지 송신 측에 알려주는 역할을 한다. 그래서 이 번호는 다음 번호의 데이터를 요청하는 역할도 한다. 10번 데이터를 수신하면 11번 데이터를 송신 측에 요청한다. 이것을 확인 응답이라고 한다.
    • 데이터가 항상 올바르게 송수신 되는 게 아니라 데이터가 손상되거나 유실된 경우는 재전송 제어를 한다.
    • 세그먼트를 하나보내고 하나 응답하고 이러면 효율이 낮다. 받은 세그먼트를 임시보관할 수 있는 버퍼가 있어서 세그먼트를 연속해서 보내도 대응이 가능하다.
    • 수신측이 대량으로 데이터를 받았을 때 보관하지 못하고 넘치면 오버플로라고 한다.
    • 오버플로가 발생하지 않도록 버퍼의 한계 크기를 알고 있어야 하는데, TCP 헤더의 윈도우 크기라고 부른다.
    • 윈도우 크기 초깃값은 3-way 핸드셰이크시 판단한다.

     

    4)포트 번호의 구조

    • 전송 계층은 신뢰성있고 정확한 데이터 전달 역할과 함께 어떤 애플리케이션에 보낼지 목적지 구분 역할도 한다.
    • 목적지 구분을 위해 포트 번호를 사용한다.
    • TCP 헤더에는 출발지 포트 번호와 목적지 포트 번호가 있다.
    • 0~1023은 잘 알려진 포트(well-known ports)로 서버측 애플리케이션에서 사용된다. 1024는 사용하지 않는 포트, 1025 이상은 랜덤 포트라고 해서 클라이언트 측의 송신 포트로 사용된다.
    • 원룸아파트를 컴퓨터라고 하면, 포트번호는 아파트 호수라고 생각하면 된다.
    애플리케이션 포트 번호
    SSH 22
    SMTP 25
    DNS 53
    HTTP 80
    POP3 110
    HTTPS 443
    • 웹 브라우저로 접속할 때 웹브라우저에서는 임의 포트가 자동 할당된다.

     

    5)UDP의 구조

    • UDP는 비연결형 통신이라서 TCP처럼 확인작업을 하지 않는다.
    • UDP는 효율성을 중시하고 스트리밍 동영상 서비스 등에 이용된다.
    • UDP 헤더가 붙은 데이터를 UDP 데이터그램이라고 한다.
    • UDP를 사용하면 해당 컴퓨터 랜에 같이 있는 컴퓨터나 네트워크 장비에 브로드캐스트(데이터를 일괄로 보내기)가 가능하다.
    • TCP는 브로드캐스트에 적합하지 않다.

     

    7.응용 계층 : 애플리케이션에 데이터 전송하기

     

    1)응용 계층의 역할

    • 서비스를 요청하는 측을 클라이언트, 제공하는 측을 서버라고 한다.
    • 서버 내의 서버프로그램, 메일프로그램 등의 애플리케이션은 응용 계층에서 동작한다.
      • cf)이 책에서 응용계층은 세션계층, 표현계층을 포함한다.
    • 응용계층은 클라이언트 요청을 전달하기 위해 통신 대상(서버 등)이 이해할 수 있는 메시지로 변환하고 전송 계층에 전달하는 역할을 한다.
    • 클라이언트, 서버 간 통신하려면 응용계층의 프로토콜이 필요하다.
      • HTTP, FTP, DNS, SMTP, POP3 등

     

    2)웹 서버의 구조(웹사이트 접속)

    • WWW은 HTML, URL, HTTP라는 3가지 기술이 사용된다.
    • 클라이언트는 HTTP요청을 하고 서버는 HTTP 응답을 준다.
    • 지금 HTTP/1.1, HTTP/2 등을 사용하지만 예전엔 HTTP/1.0을 사용했다. HTTP/1.0은 요청을 보낼때마다 연결했다가 끊는 작업을 반복했다.
    • HTTP/1.1부터 keepalive 기능을 통해 데이터 교환을 모두 끝낼때까지 연결을 끊지 않는다. 매번 연결 수립과 끊기를 반복하지 않아도 되는 것이다.
    • HTTP/2는 요청을 보낸 순서대로 응답하지 않아도 되서 콘텐츠를 빠르게 표시한다.

     

    3)DNS 서버의 구조

    • 서버에 접속하려면 IP 주소를 입력해야 한다. 그러나 URL창에 영문 주소 등을 입력해도 서버에 접속이 가능한데 이를 도와주는 것이 DNS다.
    • DNS는 URL을 IP주소로 변환해주는 서비스(시스템)이다.
    • 영문주소를 사용하여 접속하도록 돕는 것을 DNS의 이름해석이라고 한다.
    • www.naver.com과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라고 하고 도메인 이름 앞에 www를 호스트 이름(서버 이름)이라고 한다.
    • DNS 서버가 도메인 IP주소를 모르면 다음 DNS 서버로 요청한다.
    • DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있다.

     

    4)메일 서버의 구조(SMTP와 POP3)

    • 메일 송신 프로토콜은 SMTP, 메일 수신 프로토콜은 POP3이다.
    • SMTP는 포트번호 25, POP3은 110을 사용한다.
    • ping 명령은 목적지 컴퓨터와 통신할 떄 자주 사용된다. ICMP 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷 전송을 하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령이다.

     

    반응형

    댓글