컴퓨터 네트워크 : 여러 장치들이 서로 정보를 주고받을 수 있는 통신망 - 망(거미줄처럼 얽히고 설킨것) : 각기다른 장비들이 각기다른 연결지점으로 바탕으로 정보를 주고 받음 - 네트워크 장비, 호스트, 연결매체들(유/무선)
인터넷(좁은범위X, 넓은 범위) = 네트워크의 네트워크 : 네트워크끼리 연결한 네트워크
컴퓨터 네트워크 구성 요소 - 노드, 메세지, 간선(통신 링크) (자료구조의 그래프에서 노드와 간선이 언급됨-그래프;노드와 그를 연결짓은 간선으로 이루어진 자료구조)
- 노드 (=종단 시스템(end system) = 호스트(host) ) - 메세지(이메일, 파일 등 모든 것) 를 최초로 송신, 생성하는 대상 : 휴대폰/컴퓨터/자동차/시계 등이 이에 들어감 - ‘주소’를 통해 위치 특정 : 내가 어떤 메세지를 전달하고 받을지를 결정하려면 주소가 필요! - 이 호스트가 누구며 어디에 있는데라는 정보. - 주소를 이용해서 네트워크에 있는 호스트를 특정하면, 메세지의 유형도 달리 결정할 수 있음 - 유니캐스트 : 1:1통신 - 브로드캐스트 : 공지사항, 현재 네트워크의 모든 호스트에 전부 메세지를 보냄 - 멀티캐스트 : 특정 그룹에게만 메세지 전달
- 호스트를 역할별로 구별함! -클라이언트: 요청을 보내는 호스트 - 서버: 응답을 보내는 호스트 - 클라이언트와 서버간의 메세지를 주고 받는다 = 클라이언트의 요청에 서버가 응답을 보낸다. (도메인이름을 넣으면 해당 홈페이지가 나오는 것 = 웹브라우저라는 프로그램이 클라이언트로서, 도메인주소를 가진 서버 컴퓨터한테 이러한 웹페이지를 보내달라는 요청을 보냈고, 홈페이지라는 응답을 받았다.) - 호스트는 둘의 역할을 둘 다 할 수 있다! : 베타적 걔념이 아닌, 역할에 따른 분류
- (중간) 노드 - 네트워크 장비 (라우터, 스위치, 공유기,...) - 호스트와 배타적 개념은 X
-간선 (통신 링크) -유선 케이블 (트위스티트 페어 케이블, 광케이블, 랜케이블 등등) - 무선 (와이파이)
- 메세지 - 주고받는 정보 (웹 페이지, 사진, 동영상, ...)
범위에 따라서 (네트워크 구분) - LAN : 근거리를 연결한 네트워크 - 사무실 내의 컴퓨터 정도의 거리, 가정 정도. (공유기도 포함) - WAN : 원거리를 연결한 네트워크 - 인터넷 서비스, 등등 - WAN 접속 수단이 필요함 : ISP(KT, LG U+, SK 브로드밴드)에 의해 구축
프로토콜과 캡슐화
패킷 교환 네트워크 - 주고받는 정보를 패킷(packet) 단위로 주고받는 네트워크 - 패킷이란 패킷 교환 네트워크에서 주고받는 데이터 단위 - 오늘날의 인터넷은 대부분 패킷 교환 - 큰 메세지를 보내도, 패킷단위로 잘려서 보내짐
회선 교환 네트워 - 정해진 회선(circuit)으로만 통신하는 네트워크 - 사전에 연결 수립 작업 - 다른 호스트는 도중에 끼어들 수 없음 - 전통적인 전화망 - 장점: 전송률 보장 - 단점: 회선 이용률 저하 : 다른 호스트가 차단됨
패킷 구성 요소 - 헤더(header): 패킷에 붙일 부가 정보 - 택배로 생각하면 보낼 때 붙이는 주소 / 네트워크에서 주소, 프로토콜 보조 정보 - 페이로드(payload): 패킷에 보낼 정보 - 택배로 생각하면 보내는 물건 / 메세지 - [트레일러(trailer)]: 패킷 뒤에 붙일 부가정보 : 가끔 뒤에 붙는 정보가 있음
프로토콜(protocol) - 장비 간 정보를 주고받을 규칙이나 방법 - 호스트 간에 합의된 의사소통 규칙 : 호스트 간의 언어 - 헤더의 내용은 프로토콜의 영향을 받는다 - 프로토콜이 달라지면 헤더의 내용이 달라질 수 있다 - 부가정보(규칙, 방법)이 프로토콜 마다 다르다 : 목적이 다르다 - TCP(신뢰성이 있는 정보), UDT(빠르고 효율적인 전송)
네트워크 참조 모델 - 송수신 과정에서의 정형화된 단계 컴퓨터간의 통신 계층
- 송신 : 높은 계층-> 낮은 계층, 수신 : 낮은 계층-> 높은 계층
대표적인 네트워크 참조 모델 ( OSI 모델 vs TCP/IP 모델) - OSI 모델 (OSI 7계층) ***외우면 좋다*** - 물리 계층 : 가장 근원적인 송수신이 이루어짐, 0과 1로 이루어진 비트를 주고 받음, 전자파/케이블로 송수신 - 하드웨어 단에서 송수신이 이루어짐, 물리적으로 무언가 송수신을 받음 - 데이터링크 계층 : 오류제어, 랜환경에서 주소를 식별, MAC주소, 랜환경에서 안전하게 통신하게 충돌방지 -네트워크 계층 : 넓은 네트워크 간의 통신, 네트워크끼리 통신할 수 있게 하는 것 : LAN 간의 통신! - 가장 중요한 것 : IP 프로토콜 -전송 계층 : 송수신과정에서 신뢰성을 덧붙일때, 내 컴퓨터에 있는 프로그램이 나갈때 어떻게 식별될지에 대해 port라는 정보도 함께 나감 - 세션 계층 : 세션이라는 연결관계를 유지 수립 - 표현 계층 : 번역가처럼 압축/인코딩 - 응용 계층 : 실제로 어플리케이션이 동작하는 HTTP가 대표적임
- TCP/IP 모델 -네트워크 엑세스 계층 (유사- OSI 모델 ) 데이터 링크 계층+물리계층 - 인터넷 계층 (유사-OSI 모델 ) 네트워크계층 - 전송 계층 (유사-OSI 모델 )전송계층 - 응용 계층 (유사-OSI 모델 ) 응용계층+표현계층+세션계층
- OSI 와 TCP는 만들어진 목적이 다르다 - OSI : 이론적인(이상적인 설계) 참조를 위해 만들어진 모델 : 설계도 - TCP : 실제 구현을 위해 만들어진 모델 : 실물 - 서로 직접적인 비교가 불가능하다 : 각 계층 같다고 말할 수가 없다. (유사하다 정도만 이해)
캡슐화(encapsulation) - 계층마다 주로 사용되는 프로토콜이 다르기에, 헤더의 내용이 달라질 수 있다. -> 각 계층을 지날수록, 프로토컬의 헤더가 추가가 된다. - 상위 계층으로부터 내려받은 패킷을 페이로드로 삼아, 상위 계층으로부터 받은 정보에 프로토콜에 걸맞는 헤더(혹은 트레일러)를 덧붙이는 것
- 역캡슐화(decapsulation) : 캡슐화 과정에서 붙인 헤더(및 트레일러)를 각 계층에서 제거하는 것
- 각 계층별의 PDU(각 계층에서 캡슐화 된 데이터)
와이어 샤크 - 네트워크의 패킷을 직접 캡쳐할 수 있는 패킷 캡쳐 프로그램 - 내컴퓨터를 기준으로 인터넷상 날라다니는 패킷을 직접 관찰할 수 있는 - 네트워크 학습시, 아주 유용한 도구 - 와이어샤크 설치 : https://www.wireshark.org/
네트워크의 성능
트래픽 - 특정 시간 동안 네트워크 내 정보 흐름 : 한 노드를 얼마나 많은 패킷들이 한순간에 경유하는가 - 얼마나 많은 패킷들이 한 순간 몰리는가 - “트래픽이 몰린다”->과부하/오버헤드 : 정보가 과다하다 - “트래픽을 분산한다" : 정보의 흐름을 분산한다
전송 속도 : 네트워크 장비, 케이블과 같은 연결매체에서 자주 볼 수 있는 단어 - 보통 기대가능한 속도를 표기함 - bps(b/s, bits per second) - Mbps(Mb/s, Megabits per second) - Gbps(Gb/s, Gigabits per second) - 기대 가능한 속도
처리율 (Throughput) : 현실적인 전송속도
- bps(b/s, bits per second) - Mbps(Mb/s, Megabits per second) - Gbps(Gb/s, Gigabits per second) - 단위 시간 동안 네트워크를 통해 전송되는 데이터 양
대역폭 (bandwidth) - 네트워크 트래픽을 수용할 수 있는 용량 - 송수신 가능한 최대 데이터 양 - “전송 매체의 두께”
패킷 손실 (packet loss) - 얼마나 많은 패킷이 송수신 과정에서 손실되었는가 - 보통 백분율로 표기