컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다. 또한 네트워크는 노드(Node)와 링크(Link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다.
- 노드 : 네트워크 상의 다른 노드로 데이터를 전송, 수신 할 수 있는 모든 장치 (컴퓨터, 프린터 등)
- 링크 : 노드들을 서로 연결하는 통신 채널
상호간에 정보를 교환할 수 있도록 유선, 무선을 통하여 연결된 형태를 뜻함.
네트워크에 참여하는 링크, 노드들의 배치 형태, 망구성 방식을 의미한다.
네트워크는 규모를 기반으로 분류 할 수 있다
네트워크 성능 분석 명령어
- Ping : Packet INternet Groper
네트워크 상태를 확인하려는 댇상 노드를 향해 일정 크기의 패킷을 전송하는 명령어이다. 해당 노드의 패킷 수신 상태와 도달하기 까지의 시간등을 알 수 있다. ping은 TCP/IP 프로토콜중에 ICMP프로토콜을 통해 동작하며 해당 프로토콜을 지원하는 기기의 대상으로만 테스트가 가능하다.- netstat
접속되어 있는 서비스들의 네트워크 상태를 표시하는데 사용된다. 주로 서비스의 포트가 열려 있는지 확인할 때 사용한다.- nslookup
DNS에 관련된 내용을 확인하기 위해 쓰는 명령어.
특정 도메인에 매핑된 IP를 확인하기 위해 사용한다.
서로 다른 시스템에 있는 개체 간에 성공정으로 데이터를 전송하는 통신 규약이다. 네트워크에 연결된 컴퓨터들끼리 데이터를 주고받을 수 있도록 미리 약속한 전송 규약 및 규칙이기도 하다.
프로토콜은 계층적 구조로 정의되어 있고, 계층별 역할이 구분되어 있다.
사용자별로 환경이 다르고 통신의 규칙이 없으면 충돌, 지연등 여러가지 문제가 발생할 수 있기 때문이다.
물리적인 연결과 관련된 정보를 정의한다.
허브, 리피터, 케이블, 커넥터, 트랜시버, 탭이 있다.
1계층의 목적
들어온 전기신호를 그대로 잘 전달하는게 목표
주소의 개념이 없기 때문에 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송한다.
- 장비: 허브, 리피터
- 프로토콜: RS-232C 직렬포트
- 전송단위 : 비트Bit
데이터 링크 계층으로 전기신호를 모아 우리가 알아볼 수 있는 데이터의 형태로 처리한다.
출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 내가 처리해야 하는지 검사한 후 데이터 처리를 수행한다.
- ARP(Address Resolution Protocol)
주소결정 프로토콜 : IP주소를 MAC주소로 변환하는 프로토콜이다- ARRP (Reverse ARP) : MAC주소를 IP로 변환하는 프로토콜이다
2계층의 목적
전기신호를 정확히 전달하기 보다 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는게 목표
- 장비 : 스위치(L2), 브릿지, 랜카드
- 프로토콜 : HDLC, LAPB, PPP, LLC
- 전송단위 : 프레임 Frame
데이터를 통신 할 때는 두가지 주소가 사용된다. 2계층의 물리적인 MAC주소와 3계층의 논리적인 IP주소이다.
MAC 주소와 달리 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
1,2,3계층은 신호와 데이터를 올바른 위치로 보내고 실제 신호를 잘 만들어 보내는데 집중
4계층은 통신해야 하는 목적지 프로세스를 정확히 찾아하고 패킷 순서가 바뀌지 않도록 하는 역할
목적지의 경로만 찾는것이 끝이 아니라 애플리케이션이 정상적으로 돌아가기 위한 작업에 문제가 없어야 제공이 가능하다.
로드밸런서
트래픽을 분배해주는 기능. 로드밸런서가 서비스에 사용되는 대표 IP주소를 서비스 IP로 갖고 그 밑에 시스템이 늘어나면 로드 밸런서가 각 시스템의 실제 IP로 변경해 요청을 보낸다.
방화벽
TCP, UDP
TCP : Transmission Control Protocol
- 현존하는 대부분의 네트워크를 이용하는 프로그램은 TCP를 이용한다
3 Way HandShaking
안전한 통신을 위해 사전 연결작업을 진행한다.
- 클라이언트가 서버에게 연결요청을 위한 SYN데이터를 보낸다
- 서버에서 해당 포트는 SYN데이터를 받고 SYN_RCV 상태가 변경된다. 요청을 잘 받았다는 대답(ACK)와 클라이언트도 포트를 열어달라는 SYN을 보낸다
- 클라이언트는 SYN + ACK를 받고 ESTABLISHED로 상태를 변경하여 요청을 잘 받았다는 ACK를 전송한다
UDP : User Datagram Protocol
3 way handShaking 방식이 없기 때문에 중간에 데이터가 유실될 수 있다. 하지만 속도가 빠르다. 실시간 트랙픽 전송이필요할 때 사용된다.
화상회의에서 이와같이 UDP를 사용하지만 비슷한 동영상 스트리밍이나 유튜브, 넷플릭스는 수 초분의 동영상 데이터를 받아놓고 캐시에 저장하여 사용 한다.
사전적의미로는 항구라고 쓰인다
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라고 한다.
프로그램 관점에서의 세션 관리를 수행한다.
5계층의 목적
동기화, 안정적인 연결 유지와 에러 복구등의 역할을 담당한다.
- 프로토콜 : SSH, TLS
- 전송단위 : 데이터 data
표현 방식이 다른 애플리케이션이나 시스템간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행한다.
어플리케이션 프로세스를 정의하고 서비스를 수행한다.
네트워크 소프트웨어의 UI부분이나 사용자 입,출력 부분을 정의하는 것이 애플리케이션 계층의 역할이다.
참고자료
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