[Network] 1장 요약
1-1. 컴퓨터 네트워크를 알아야 하는 이유
- 컴퓨터 네트워크(= 네트워크): 여러 장치(예. 데스크톱, 노트북, 스마트폰 등)가 마치 그물처럼 연결되어 정보를 주고받을 수 있는 통신망
- 인터넷(internet): 여러 네트워크를 연결한 ‘네트워크의 네트워크’
- 개발자가 네트워크를 알아야 하는 이유?
- 프로그램을 만드는 업무에서 네트워크 지식 활용
- 프로그램을 유지 보수하는 업무에서 네트워크 지식 활용
1-2. 네트워크 거시적으로 살펴보기
네트워크의 기본 구조
- 네트워크는 노드와 간선으로 이루어진 그래프 형태를 띤다.
- 그래프(graph): 노드와 노드를 연결하는 간선으로 이루어진 자료구조
- 노드(node)는 정점(vertex)
- 간선(edge)는 링크(link)
- 네트워크 기본 구조
- 호스트(host) - 가장자리 노드
- 네트워크를 통해 흐르는 정보를 최초로 생성 및 송신하고 최종적으로 수신한다.
- 대표적인 역할로 서버(server)와 클라이언트(client)가 있다.
- 클라이언트: 서버에게 요청을 보내는 호스트
- 서버: 요청에 대한 응답을 보내는 호스트
- 네트워크 장비 - 중간 노드
- 호스트 간 주고받는 정보가 원하는 수신지까지 안정적이고 안전하게 전송될 수 있도록 한다.
- 예. 이더넷 허브, 스위치, 라우터, 공유기 등
- 통신 매체 - 간선(링크)
- 호스트와 네트워크 장비를 연결하기 위한 유무선 매체
- 메시지(message)
- 통신 매체로 연결된 노드가 주고받는 정보
- 예. 웹페이지, 파일, 메일 등
- 호스트(host) - 가장자리 노드
범위에 따른 네트워크 분류
- LAN(Local Area Network): 가정, 기업처럼 비교적 근거리를 연결하는 한정된 공간의 네트워크
- WAN(Wide Area Network): LAN을 연결한 넓은 범위의 네트워크로, ISP(Internet Service Provider)가 구축하고 관리한다.
메시지 교환 방식에 따른 네트워크 분류
- 회선 교환 방식
- 통신 전 메시지 전송로인 회선(circuit)을 설정하고, 연결된 경로로 메시지를 주고받는 방식
- 장점 - 전송되는 정보의 양이 비교적 일정하다.
- 단점 - 회선 이용 효율이 낮아질 수 있다. 메시지를 주고받지 않으면서 회선을 점유하는 것은 낭비다.
- 회선 교환 네트워크 장비: 회선 스위치로, 호스트 사이에 일대일 전송로를 확보한다.
- 패킷 교환 방식
- 메시지를 패킷 단위로 쪼개어 전송하고, 수신할 때 재조립된다.
- 장점 - 전송 경로를 점유하지 않기에 네트워크 이용 효율이 상대적으로 높다.
- 패킷 스위치 네트워크 장비: 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 결정하거나 패킷의 송수신지를 식별한다.
- 대표적으로 라우터, 스위치
- 패킷(packet)
- 패킷 교환 네트워크에서 주고받는 메시지의 단위로, 페이로드 + 헤더 (+ 트레일러)로 구성된다.
- 페이로드(payload): 패킷을 통해 전송하고자 하는 데이터
- 헤더(header)와 트레일러(trailer): 패킷에 붙는 부가 정보
1-3. 네트워크 미시적으로 살펴보기
프로토콜
- 프로토콜(protocol)
- 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법으로 서로 다른 통신 장치들이 정보를 주고받으려면 프로토콜이 통해야 한다.
- 프로토콜은 저마다의 목적과 특성을 지니기 때문에 특정 프로토콜로 주고받는 패킷의 헤더 내용이 달라질 수 있다.
네트워크 참조 모델
- 네트워크 참조 모델 (= 네트워크 계층 모델)
- 네트워크 통신이 일어나는 각 과정을 계층으로 나눈 구조
- 통신 과정을 계층으로 나눈 이유?
- 네트워크 구성과 설계가 용이하다.
- 네트워크 문제 진단과 해결이 용이하다.
- 네트워크 참조 모델은 프로토콜과 네트워크 장비가 반드시 지켜야 하는 엄격한 규칙아나 법규가 아니다. 네트워크 구조에 대한 개념 참조를 위해 사용하는 것이 바람직하다.
- OSI 모델
- 물리 계층
- 1과 0으로 표현되는 비트 신호를 주고받는 계층
- 데이터를 통신 매체에 맞는 신호로 변환하고 전송 매체를 통해 전송한다.
- 데이터 링크 계층
- 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 게층
- 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인
- MAC 주소 체계를 통해 송수신지 특정 가능
- 전송 과정 중 충돌 문제 해결
- 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 게층
- 네트워크 계층
- 메시지를 다른 네트워크의 수신지까지 전달하는 계층
- 네트워크 간의 통신이 이루어진다.
- IP 주소 체계를 통해 수신지 호스트와 네트워크를 식별하고 최적 경로를 설정한다.
- 전송 계층
- 신뢰성, 안정성이 있는 전송을 할 때 필요한 계층
- 패킷의 흐름을 제어하거나 전송 오류 점검한다.
- 포트를 통해 실행 중인 응용 프로그램을 식별한다.
- 세션 계층
- 세션(session): 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태
- 통신 세션을 설정, 유지, 종료하는 역할
- 표현 계층
- 문자를 코드로 변환하거나, 압축, 암호화 등의 작업이 이루어진다.
- 응용 계층
- 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공한다.
- 물리 계층
- TCP/IP 모델
- 네트워크 엑세스 계층 (= 링크 계층, 네트워크 인터페이스 계층)
- OSI 모델의 데이터 링크 계층과 유사하다.
- 인터넷 계층
- OSI 모델의 네트워크 계층과 유사하다.
- 전송 계층
- OSI 모델의 전송 계층과 유사하다.
- 응용 계층
- OSI 모델의 세션 + 표현 응용 계층과 유사하다.
- 네트워크 엑세스 계층 (= 링크 계층, 네트워크 인터페이스 계층)
- OSI 모델 vs TCP/IP 모델
- OSI 모델은 이론 > 구현
- TCP/IP 모델은 이론 < 구현
캡슐화와 역캡슐화
- 상위 계층의 패킷(헤더 + 페이로드)은 하위 계층에서의 페이로드
- 캡슐화(encapsulation)
- 송신 할 때 데이터 및 트레일러를 추가하는 과정
- 하위 계층으로 갈수록 헤더가 붙어 데이터의 크기가 커진다. (응용 → 전송 → 네트워크 → 데이터 링크 → 물리)
- 역캡슐화(decapsulation)
- 수신 할 때 캡슐화 과정에서 붙였던 헤더 및 트레일러를 각 계층에서 확인한 뒤 제거하는 과정
- 수신지에서는 원래 데이터만 남는다.
PDU
- PDU(Protocol Data Unit)
- 각 계층에서 송수신되는 메시지의 단위
- 페이로드 + 헤더 + 트레일러
- PDU는 주로 전송 계층 이하의 메시지를 구분하기 위해 사용한다.
- 각 계층에서의 PDU
- 응용 계층 - 데이터(data), 메시지(message)
- 표현, 세션 계층 - 데이터(data)
- 전송 계층
- TCP 프로토콜에서 세그먼트(segment)
- UDP 프로토콜에서 데이터그램(datagram)
- 네트워크 계층 - 패킷(packet), IP 데이터그램(IP datagram)
- 데이터 링크 계층 - 프레임(frame)
- 물리 계층 - 비트(bit), 심볼(symbol)
- 패킷의 의미
- 패킷 교환 네트워크에서 쪼개어져 전송되는 단위
- 네트워크 게층에서의 송수신 단위
트래픽과 네트워크 성능 지표
- 트래픽(traffic)
- 네트워크 내의 정보량
- 특정 노드에 트래픽이 몰리면 처리할 정보가 많기 때문에 과부하(overhead)가 생길 수 있다.
- 네트워크 성능 평가 지표
- 처리율(throughput): 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
- bps(bits per second), Mps(megabits per second), Gbps(gigabits per second), pps(packets per second) 등의 단위 사용
- 대역폭(bandwidth): 단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량
- bps, Mbps, Gbps 등의 단위 사용
- 높은 대역폭을 가지는 것은 많은 정보를 송수신할 능력이 있다는 것(도로의 넓이가 넓어 자동차가 많이 오갈 수 있음)
- 패킷 손실(packet loss): 전체 패킷 중 유실된 패킷을 백분위로 표현한 값
- 높은 트래픽이나 예상치 못한 장애로 패킷을 처리하지 못하면 패킷 손실이 발생 가능
- 처리율(throughput): 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
Leave a comment