본문 바로가기
Computer Science/Computer Network

네트워크 기초 정리 노트

by HaningYa 2021. 1. 24.
728x90

  • 네트워크: 노드들이 연결된 통신망 
    *노드: 네트워크에 속한 장비
  • 인터넷: 세상에서 가장 큰 네트워크 (이 통신망을 통해서 웹서비스가 되는데 world wide web) 인터넷 != www
  • 크기에 따른 분류
    • LAN (Local Area Network) : 지역끼리 묶은 통신망
    • WAN (Wide Area Network) : 멀리있는 지역, 여러개의 LAN을 연결시킨것
    • MAN (Metropolitan Area Network)
  • 형태에 따른 분류
    • Star: 중앙에 모든 장비가 연결됨 (가운데 장비 고장나면 통신 안됨, 집 공유기, LAN 대역 구성할때 자주 사용
    • Mesh: 그물 형태
    • Ring
    • Bus
    • 혼합: 실제 인터넷 형태
  • 통신 연결에 따른 분류
    • 유니캐스트 : 1:1 통신
    • 멀티캐스트: 1:N 통신
    • 브로드캐스트: 네트워크 상의 모든 대상과 통신
  • 네트워크 프로토콜: 특정 사용자를 지정하여 통신하기 위한 일종의 약속, 양식, 규약
    sender node가 receiver node에게 어떤 데이터를 어떻게 보낼지
  • 통신방식
    • 가까이: Ethernet protocol (MAC 주소 사용) - 2계층
    • 멀리: ICMP, IPv4, ARP (IP 주소 사용) - 3계층
    • 특정 프로그램이랑 연결: TCP/UDP (포트번호 사용) - 4계층
  • 패킷: 이러한 프로토콜들이 캡슐화된 것, 통신망을 통해서 전달되는 데이터를 통칭 (하나의 블록)
    | Ethernet | IPv4 | TCP | Data | 
  • tracerroute 로 hop 하는 과정을 볼 수 있음, 보통 15번 하면 모든 ip 에 도착 가능 (hop - 네트워크 대역 이동)
  • 네트워크 모델
    • TCP/IP 모델: 어떤 정보를 주고받는데 쓰이는 통신규약
      • 4계층: 응용 
      • 3계층: 전송
      • 2계층: 네트워크
      • 1계층: 네트워크 인터페이스
    • OSI 7 Layer 모델: 데이터를 주고받을 때 데이터의 흐름을 각 구간별로 나눔
      • 7계층: 응용 (HTTP, SMTP, POP, FTP, SSH 등, 직접 만들 수 도 있음 ex) 소켓통신)
      • 6계층: 표현
      • 5계층: 세션
      • 4계층: 전송 (TCP/UDP)
      • 3계층: 네트워크 (IP, ICMP, ARP)
      • 2계층: 데이터 링크 (Ethernet)
      • 1계층: 전선, 전파, 광섬유
  •  두 모델의 공통점: 계층적 네트워크 모델, 계층간 역할 정의
  • 두 모델의 차이점:
    계층수,
    OSI: 논리적 역할기반,
    TCP/IP: 기술 자체에 특화 (실제 프로토콜)

    예를들어 HTTP 프로토콜은 OSI 의 응용, 표현, 세션 계층에 나눠져있고 TCP에서는 응용계층과 대응됨
    TCP 의 네트워크 인터페이스도 OSI 에서는 물리와 데이터링크로 구분되있음
    • 패킷은 제어정보 + 사용자 데이터 (Payload) 로 구성됨
      | headers | Payload | footer | ( footer 는 거의 사용안함)
    • encapsulation: Payload 의 프로토콜의 header에 붙이는것
      | Ethernet | IPv4 | TCP | HTTP |
                                 | h      | p       |
                       | h      |   payload     |
      | header    | payload                 |
  •  캡슐화는 상위계층에서 하위계층으로 내려가며 붙임
  • decapsulation: 데이터 받는 과정 (하위 프로토콜부터 하나씩 까서 확인)
  • 세그먼트 : 4계층 패킷
  • 패킷: 3계층
  • 프레임: 2계층

2계층 (LAN)

  • MAC: 물리적 주소체계
    실제 장비가 가진 주소 (제조회사 식별 ID + 고유번호)
  • switch 장비

3계층(WAN)

  • LAN 과 LAN 연결 (라우터)
  • 서로다른 LAN 으로 가려면 3계층 필요
    MAC 주소 + IP 주소
  • IPv4 주소: 현재 할당된 IP 주소
  • 서브넷 마스크: IP 주소에 대한 네트워크 대역을 규정
  • ARP 프로토콜: IP 주소를 이용해 MAC주소를 알아오는 프로토콜
  • IPv4 프로토콜: WAN 에서 통신할 때 사용하는 프로토콜
  • ICMP 프로토콜: 서로가 통신되는지 확인할 때 사용함
  • classful IP Address: 낭비가 심해서 바꿨음,class로 대역폭 나눔
  • classless IP Address: 서브넷 마스크로 네트워크 대역 구분
    연속되는 1에서 0으로 바뀌는 부분이 대역폭임
    여전히 낭비되는 것들이 존재하고 ip address 부족해서 IPv6로 넘어가는 중
    또한 사설 IP 와 공인 IP를 구분하여 해결
    공인 IP 한개당 사설 IP 2^32 개 (같은 네트워크 대역)
  • NAT (Network Address Translation) : 이때 공인 IP를 사설 IP 로 변환
  • NAT Table : 요청이 나갈때 누가 요청했는지 기록하는 테이들 (예를들어 공유기)
    요청 기록이 없는 데이터가 들어오면 공유기가 알아서 거름 (홈서버 만드는게 귀찮은 이유) -> 굳이 만들거면 포트포워딩 해야함
  • 게이트웨이 주소: 공인 IP, 공유기 주소, 외부 세상으로 나가는 문
  • ARP : 같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC 주소를 IP 주소를 이용해 알아오는 프로토콜
    같은 데트워크 대역에서 통신한다 해도 데이터를 보내기 위해서 7계층 부터 캡슐화가 필요
    이때 IP는 알고 MAC은 몰라도 ARP를 통해 통신이 가능함
  • ARP 원리
    • ARP 패킷 만들때 MAC Address 전부 FFF.. 로 하고 대역내에 브로드캐스트로 전달(같은 대역내에 전부 전달)
    • 그럼 각 노드가 받아서 본인 IP이면 자신의 MAC주소를 추가해서 응답 ARP 를 만들어서 보내줌
    • 응답 받아서 ARP Cache Table에 등록함. 그 뒤에 통신이 일어남
  • ARP Cache table: 통신했던 ip 주소와 MAC주소를 mapping 한것
  • ARP 의 특징은 3계층임에도 같은 네트워크 대역에서만 사용함
  • IP 주소가 고유한데도 MAC 주소가 필요한 이유: 단말간 통신을 위해 IP를 이용해 출발지와 목적지를 정하고 실제 데이터 이동은 MAC Address를 사용하기 떄문에 (자세한 내용 아래 링크 참고)

 

ARP 쉽게 이해하기

주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는

aws-hyoh.tistory.com

  • IPv4: 데이터 교환을 위한 프로토콜, 데이터가 정확하게 전달되는것 보장 X, (정확하고 순차적인 전달은 TCP)
  • IPv4 조각화: 큰 패킷들이 적은 MTU( Maximum Transmission Unit)을 갖는 링크를 통해 전송되어 여러개의 작은 패킷으로 쪼개져 조각화 되어 전송됨
    • 목적지까지 패킷을 전달하는 과정에서 통과하는 라우터 마다 전송에 적합한 프레임으로 변환이 필요
    • 최종 목적지 도착전까지 재조립X
    • 중간 라우터에서 더 조각화 가능
    • 재조립은 항상 최종 수신지에서 가능
    • MF(More Fragment, 뒤에 조각 더 있으면 1 아니면 0) | OffSet(처음부터 얼만큼 떨어진 조각인지 나타냄, 나누기8) | Data (실제 데이터)
  • MTU 걸러지는 시점: IPv4 가 붙고 난 다음 MTU 통과후에 Ethernet protocol 붙는다
    그래서 IPv4 필요한 20바이트 생각해야함

4계층(Program-Program)

프로그램과 데이터 주고받는것 (client- server)

  • 4계층 프로토콜 종류
    • well known port
    • registered port
    • dynamic port
  • TCP: 연결 지향 데이터 스트림 지원
    • 신뢰성 흐름제어 다중화
    • transmission control protocol
    • 3 way handshake : 연결 수립과정
      • 클라가 서버에서 요청 패킷을 보낸다.
      • 서버가 클라에게 요청을 받아들이는 패킷을 보낸다.
      • 클라가 이를 수락하는 패킷을 보낸다.
      • 이후 통신 시작
      • sequence, acknowledge 규칙이 있음
        1. 보낸쪽에서 또 보낼때는 SEQ 번호와 ACK 번호 그대로
        2. 받은 쪽에서 SEQ 번호는 받은 ACK 번호가 된다.
        3. 받는쪽 ACK 번호는 받은 SEQ 번호 + 데이터 크기
      • TCP 연결상태변화
        • listening: passive open (포트 번호 사용중) 요청 듣고있는 상태
        • Establisehd: 연결 수립
        • 등등
  • UDP: 단순한 전송에 사용되는 데이터 프로토콜
    • 비 연결 지향 프로토콜 (옛다 받아라)
    • User Datagram protocol, Universal Datagram protocol
    • 데이터 그램 도착순서가 바뀌거나 중복될 수 있다.
    • 비디오 스트리밍등 오류나 검사수정 필요없는 프로그램에서 사용
    • 대표적인 예시: DNS 서버, 
  • 포트번호: 특정 프로그램이 사용하는 주소 (1:1)
  • well known port : (0~1024)
    • FTP: 20, 21
    • SSH: 22
    • TELENET: 23
    • DNS: 53
    • DHCP: 67, 68
    • TFTP: 69
    • HTTP: 80
    • HTTPS: 443
    • SMTP POP 등등
  • registered port
    • 오라클 DB: 1521
    • MySQL: 3306
  • Dynamic port
    • 49102 ~ 6뭐시기
  • 크롬 웹브라우저 -> 네이버 웹서버 : port, ip, MAC 주소 다 알아야 인터넷이 가능
  • NAT: IP 패킷의 TCP/UDP 포트숫자 와 소스 및 복적지의 IP 주소를 재기록 하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술
    • 하나의 공인 ip 를 여러개의 사설 ip가 사용하기 위해 쓰임
  • 포트 포워딩: 패킷이 라우터나 방화벽과 같은 네트워크 장비를 가로지르는 동안 특정 IP주소와 포트 번호의 통신 요정을 특정 다른 IP와 포트번호로 넘여주는 NAT (네트워크 주소 변환)의 응용
    • 직접 해당 컴퓨터 ip로 보내는 것이 아니라 공인 ip 의 특정 포트로 요청을 보내면 그 공인 ip사용주인 공유기가 처리하는 것( 공유기 특정 포트의 요청은 특정 ip의 특정 포트로 전달해줌
  • HTTP1.0 : 연결 수립 종작 연결해제
    • 하나의 URL 에 하나의 TCP 연결, 네트워크 부하가 심함
  • HTTP 요청 프로토콜 구조
    • Request Line
    • headers
    • 공백
    • Body
  • Request Line 구조
    • 요청타입(GET, POST) | 공백 | URI | 공백 | HTTP 버전
  • URI: Uniform resource identifier, 인터넷 상에서 특정 자원(파일)을 나타내는 유일한 주소
    구조: scheme://IP주소:포트/폴더이름/파일이름
    포트 번호는 80번(HTTP) 443번(HTTPS) 자동으로 써움
  • URL: Uniform Resource Locater
  • HTTP 응답 프로토콜 구조
    • Status Line
    • Headers
    • 공백
    • Body
    • Status Line 구조
      |HTTP 버전| 공백 | 상태코드 | 공백 | 상태문구 | 
  • 상태코드
    • 100번대: 단순정보
    • 200번대: client 요청 성공
    • 300번대: client 요청 수행되지 않아 다른 URL로 재지정
    • 400번대: Client 요청이 불완전 하여 다른 정보가 필요 Client error
    • 500번대: Server 오류, Client 요청 수행 불가
    • 200 OK 요청성공
    • 403 Forbidden 권한없는 페이지 접근
    • 404 not found 없는 페이지
    • 500 internal server error
    • 503 service unavailable 최대 session 초과
  • HTTP header 포맷
    • 일반
      • content-length: body 길이
      • content-type: body의 데이터 종류 (text.html)
    • 요청
      • cookie
      • host: 요청된 URL 에 나타난 호스트명, 상태표시
      • user-agent: client program 에 대한 정보 (모바일/피씨등)
    • 응답
      • server: 웹서버 프로그램 정보
      • setCookie: 쿠키 업데이트

강의정보

www.youtube.com/watch?v=Av9UFzl_wis&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi

 

 

www.popit.kr/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2/

 

나만 모르고 있던 - HTTP/2 | Popit

자그마치 15년여의 시간을 웹 통신 프로토콜의 절대권좌의 자리에 올라 꿋꿋이 버텨오던 HTTP/1.1에 대한 문제점과 HTTP/2 프로코톨의 특징에 대해 살펴 보겠습니다.

www.popit.kr

ooz.co.kr/106

 

RTMP와 HLS & (RTP, RTCP, RTSP)

영상 스트리밍과 관련하여 작업할 게 있어서 여기저기 참조하여 작성하였던 내용입니다. 내용을 많이 축약하여 작성한 것이라 해당 용어의 의미 및 개략적인 설명 정도로 보시면 될 것 같습니

ooz.co.kr

shlee0882.tistory.com/110

 

OSI 7 계층이란?, OSI 7 계층을 나눈 이유

1. OSI 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 1.1 OSI 7 계층을 나눈이유는? 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있

shlee0882.tistory.com

brunch.co.kr/@wangho/6

 

03. 개알못을 위한 TCP/IP의 개념

1부 웹의 시작과 현재 | 그것은 마치 땅 위의 길과 같은 것이다. 사실 땅 위에는 본래 길이 없었다. 걸어가는 사람이 많아지면서 곧 길이 된 것이다. - 루쉰, 고향 하이퍼텍스트 이야기부터 시작

brunch.co.kr

goitgo.tistory.com/25

 

OSI 7 Layer 과 TCP/IP 4 Layer(TCP/IP Protocol suite) 비교

OSI 7 Layer vs TCP/IP Protocol Suite 1. OSI 7 Layer 개요 ➀ 네트워크 통신을 체계적으로 다루고 있는 ISO 표준은 개방시스템 상호연결 (OSI) 모델 이다. OSI 모델은 1984년에 정의 되었다. ➁ 개방시스템(Open..

goitgo.tistory.com

ijbgo.tistory.com/26

 

HTTP/1.1 VS HTTP/2

HTTP/1.1 동작 방식 HTTP/1.1는 기본적으로 Connection당 하나의 요청을 처리 하도록 설계 동시 전송이 불가능하고 요청과 응답이 순차적으로 이뤄짐 HTTP 문서 안에 포함된 다수의 리소스 (Images, CSS, Scr

ijbgo.tistory.com

 

 

https://dnjswns2942.tistory.com/18

728x90

'Computer Science > Computer Network' 카테고리의 다른 글

📡 Wireshark Lab #1  (0) 2020.09.22
[Computer Network] Protocol Architecture  (2) 2020.09.03
Computer Networks Intro  (0) 2020.09.01

댓글