[CS] 네트워크

Nam_JU·2022년 9월 9일
0

Computer Science

목록 보기
1/6

네트워크 Net-Work

컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다. 또한 네트워크는 노드(Node)와 링크(Link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다.

  • 노드 : 네트워크 상의 다른 노드로 데이터를 전송, 수신 할 수 있는 모든 장치 (컴퓨터, 프린터 등)
  • 링크 : 노드들을 서로 연결하는 통신 채널

네트워크 토폴로지 Network Topology

상호간에 정보를 교환할 수 있도록 유선, 무선을 통하여 연결된 형태를 뜻함.
네트워크에 참여하는 링크, 노드들의 배치 형태, 망구성 방식을 의미한다.


네트워크 분류

네트워크는 규모를 기반으로 분류 할 수 있다

  • WAN : 광역 네트워크 통신망, 국가나 대륙간 통신망
  • MAN : 대도시 지역 통신망
  • LAN : 근거리 통신망, 같은 건물이나 캠퍼스 같은 좁은 공간

네트워크 성능 분석 명령어

  • Ping : Packet INternet Groper
    네트워크 상태를 확인하려는 댇상 노드를 향해 일정 크기의 패킷을 전송하는 명령어이다. 해당 노드의 패킷 수신 상태와 도달하기 까지의 시간등을 알 수 있다. ping은 TCP/IP 프로토콜중에 ICMP프로토콜을 통해 동작하며 해당 프로토콜을 지원하는 기기의 대상으로만 테스트가 가능하다.
  • netstat
    접속되어 있는 서비스들의 네트워크 상태를 표시하는데 사용된다. 주로 서비스의 포트가 열려 있는지 확인할 때 사용한다.
  • nslookup
    DNS에 관련된 내용을 확인하기 위해 쓰는 명령어.
    특정 도메인에 매핑된 IP를 확인하기 위해 사용한다.

프로토콜

서로 다른 시스템에 있는 개체 간에 성공정으로 데이터를 전송하는 통신 규약이다. 네트워크에 연결된 컴퓨터들끼리 데이터를 주고받을 수 있도록 미리 약속한 전송 규약 및 규칙이기도 하다.
프로토콜은 계층적 구조로 정의되어 있고, 계층별 역할이 구분되어 있다.

  • 인터넷의 기본 프로토콜 - TCP/IP
  • 원하는 웹사이트의 웹페이지를 볼 수 있는 - HTTP
  • 메일을 주고 받을 시 - SMTP, POP3
  • 인터넷으로 데이터나 파일의 업로드, 혹은 다운로드 시 - FTP

프로토콜이 필요한 이유?

사용자별로 환경이 다르고 통신의 규칙이 없으면 충돌, 지연등 여러가지 문제가 발생할 수 있기 때문이다.


네트워크의 통신 방식

  • 유니 캐스트
    • 1:1 통신
    • 출발지와 목적지가 1:1로 통신
  • 브로드 캐스트
    • 1:그룹 통신
    • 하나의 출발지에서 다수의 특정 목적지로 데이터 전송
  • 애니 캐스트
    • 1:1 통신
    • 다수의 동일 그룹중 가장 가까운 호스트에서 응답
    • IPv4에서는 일부 기능 구현, IPv6는 모두 구현 가능

OSI-7 Layer

1계층 Physical 물리계층


물리적인 연결과 관련된 정보를 정의한다.
허브, 리피터, 케이블, 커넥터, 트랜시버, 탭이 있다.

  • 허브, 리피터 : 네트워크 통신을 중재하는 네트워크 장비
  • 케이블, 커넥터: 컴퓨터의 랜 카드와 케이블을 연결하는 장치
  • 탭 : 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제해준다.

1계층의 목적
들어온 전기신호를 그대로 잘 전달하는게 목표
주소의 개념이 없기 때문에 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송한다.

  • 장비: 허브, 리피터
  • 프로토콜: RS-232C 직렬포트
  • 전송단위 : 비트Bit


데이터 링크 계층으로 전기신호를 모아 우리가 알아볼 수 있는 데이터의 형태로 처리한다.
출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 내가 처리해야 하는지 검사한 후 데이터 처리를 수행한다.

  • NIC (Network Interface Card) 네트워크 인터페이스 카드
    • NIC는 네트워크 카드, Lan 카드라고도 불린다.
      LAN - 대도시 지역 통신망에서만 사용했기 때문에 랜카드라고도 불림
    • 물리적으로 컴퓨터의 내부와 외부를 연결해주는 중간지점을 뜻함
    • 이더넷카드라고도 불린다. 혹은 네트워크 어뎁터라고도 불린다.
  • MAC 주소
    - NIC에는 고유 MAC 주소가 있다
    - 입력되는 전기 신호를 데이터 형태로 만들고 데이터에서 도착지 MAC주소를 확인 한 후 나의 전기신호가 맞는지 안맞는지 확인을 한다.

    • ARP(Address Resolution Protocol)
      주소결정 프로토콜 : IP주소를 MAC주소로 변환하는 프로토콜이다
    • ARRP (Reverse ARP) : MAC주소를 IP로 변환하는 프로토콜이다
  • 스위치
    • MAC주소를 기반으로 통신을 연결해주는 장비. MAC주소를 기반으로 정확한 포트에 포워딩(스위칭)을 해준다.

2계층의 목적
전기신호를 정확히 전달하기 보다 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는게 목표

  • 장비 : 스위치(L2), 브릿지, 랜카드
  • 프로토콜 : HDLC, LAPB, PPP, LLC
  • 전송단위 : 프레임 Frame

3계층 Network 네트워크 계층


데이터를 통신 할 때는 두가지 주소가 사용된다. 2계층의 물리적인 MAC주소와 3계층의 논리적인 IP주소이다.
MAC 주소와 달리 IP주소는 사용자가 환경에 맞게 변경해 사용 할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 크게 나뉘어진다.

  • 라우터 : 라우터는 3계층에서 정의한 IP주소를 이해할 수 있다. IP주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할을 한다

IP : Intertet Protocol

  • 사용자가 변경 가능한 논리 주소이다
  • 주소에 레벨이 있다. 그룹을 의미하는 네트워크 주소와 호스트 주소로 나뉜다

IP주소 체계

  • IPv4 : 32비트를 8비트 단위로 점을 찍어 표기
  • Ipv6 : 64비트를 16비트 단위로 점을 찍어 표기

클래스 기반 할당 방식

MAC의 경우는 호스트와 네트워크 주소를 반씩 나눴다.
IP에서는 클래스라는 개념으로 나눈다
클래스 기반 할당 방식은 고정된 주소 체계에 비해 주소를 절약할 수 있다

  • 서브넷 마스크 : 어디까지가 네트워크 주소이고 호스트 주소인지 구분할 수 있는 구분자
    (2진수 1: 네트워크주소, 0:호스트 주소)
  • 네트워크 주소: 호스트들을 모은 네트워크를 지칭하는 주소. 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 한다
  • 호스트 주소 : 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소

3계층의 목적
라우터가 IP주소를 읽고 최적의 경로를 찾아 패킷을 포워딩 함

  • 장비: 라우터, 스위치(L3)
  • 프로토콜: IP, ARP, ICMP, IGMP, RARP
  • 전송단위 : 패킷 Packet

4계층 Transport 전송 계층


1,2,3계층은 신호와 데이터를 올바른 위치로 보내고 실제 신호를 잘 만들어 보내는데 집중
4계층은 통신해야 하는 목적지 프로세스를 정확히 찾아하고 패킷 순서가 바뀌지 않도록 하는 역할
목적지의 경로만 찾는것이 끝이 아니라 애플리케이션이 정상적으로 돌아가기 위한 작업에 문제가 없어야 제공이 가능하다.

  • 로드밸런서
    트래픽을 분배해주는 기능. 로드밸런서가 서비스에 사용되는 대표 IP주소를 서비스 IP로 갖고 그 밑에 시스템이 늘어나면 로드 밸런서가 각 시스템의 실제 IP로 변경해 요청을 보낸다.

  • 방화벽

TCP, UDP

TCP : Transmission Control Protocol

  • 현존하는 대부분의 네트워크를 이용하는 프로그램은 TCP를 이용한다

    3 Way HandShaking

    안전한 통신을 위해 사전 연결작업을 진행한다.

    1. 클라이언트가 서버에게 연결요청을 위한 SYN데이터를 보낸다
    2. 서버에서 해당 포트는 SYN데이터를 받고 SYN_RCV 상태가 변경된다. 요청을 잘 받았다는 대답(ACK)와 클라이언트도 포트를 열어달라는 SYN을 보낸다
    3. 클라이언트는 SYN + ACK를 받고 ESTABLISHED로 상태를 변경하여 요청을 잘 받았다는 ACK를 전송한다

UDP : User Datagram Protocol

3 way handShaking 방식이 없기 때문에 중간에 데이터가 유실될 수 있다. 하지만 속도가 빠르다. 실시간 트랙픽 전송이필요할 때 사용된다.
화상회의에서 이와같이 UDP를 사용하지만 비슷한 동영상 스트리밍이나 유튜브, 넷플릭스는 수 초분의 동영상 데이터를 받아놓고 캐시에 저장하여 사용 한다.

Port : 포트

사전적의미로는 항구라고 쓰인다
4계층에서 포트 번호가 상위 프로토콜 지시자이다

  • well-known port (0 ~ 1023)
  • registerd port (1024 ~ 49151)
  • dynamic port (49152 ~ 65535)

4계층의 목적
데이터를 잘 쪼개고 보내고 받는 역할을 중점적으로 고려한다.

  • 장비 : 게이트웨이
  • 프로토콜 : TCP/UDP
  • 전송단위 : 세그먼트 Sagment

따라서 두 호스트가 통신을 하기 위해서는 2계층의 MAC주소, 3계층의 IP주소, 4계층의 Port포트가 필요하다.



PDU : Protocol Data Unit

각 계층에서 헤더와 데이터를 합친 부분을 PDU라고 한다.

  • 1계층 : 비트 Bits
  • 2계층 : 프레임 Frame
  • 3계층 : 패킷 Packet
  • 4계층 : 세그먼트 Sagment
  • 5,6,7 Application 계층 : 데이터 Data

5계층 Session 세션 계층


프로그램 관점에서의 세션 관리를 수행한다.

5계층의 목적
동기화, 안정적인 연결 유지와 에러 복구등의 역할을 담당한다.

  • 프로토콜 : SSH, TLS
  • 전송단위 : 데이터 data

6계층 Presentation 표현 계층


표현 방식이 다른 애플리케이션이나 시스템간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행한다.

7계층 Application 응용 계층


어플리케이션 프로세스를 정의하고 서비스를 수행한다.
네트워크 소프트웨어의 UI부분이나 사용자 입,출력 부분을 정의하는 것이 애플리케이션 계층의 역할이다.


추가정리 필요


NAT, PAT

SNAT, DNAT

DNS

VPN

DHCP Dynamic Host Configuration Protocol : 동적 호스트 결정 프로토콜




참고자료
https://coding-factory.tistory.com/340
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=brickbot&logNo=220418950837
https://raptor-hw.net/xe/know/17218

profile
개발기록

0개의 댓글