Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

으나님의 잡다한 개발상식

네트워크 기초 본문

웹 기초

네트워크 기초

스위트치즈 2019. 11. 5. 20:30

1. 네트워크

(1) 정의

케이블이나 전화선 등으로 연결되어 동일한 프로토콜을 사용하는 디바이스들의 집합

 

※ 프로토콜(=약속)

A, B, C 디바이스가 있다. A, C에서 둘다 B에게 '1'을 보낼 경우 B의 입장에서는 누가 '1'을 보냈는지 모른다. 따라서 데이터를 보낼 때 누가 보냈는지 알 수 있도록 약속을 정하는데 이를 프로토콜이라고 한다.

※ 디바이스(= hardware)

 

 

2. 위상(Topology)에 따른 분류

※ 위상 : 쉽게 pc가 연결된 방식이라고 보면 되는 듯(?)

 

※ 공유기의 경우 버스형인데, 버스형의 문제점은 충돌위험이 있다는 것이다.

ex) 두 기기가 동시에 공유기에 데이터를 보내면 충돌할 수 있다

 

 

3. 규모에 따른 분류

(1) LAN(Local Area Network)

공유기에서 뽑아져 나오는 선을 랜선이라고 한다. 가상 IP 활용, WIFI도 LAN

(2) WAN(Wide Area Network)

우리가 흔히 말하는 인터넷을 하기 위한 것이며, 통신사가 제공한다. 통신사가 제공한 공유기에서 다시 LAN이 뻗어져 나오는 것이다. LTE는 WAN

 

 

4. 클라이언트와 서버

(1) 서버

1) 서버를 단순하게 표현하면 데이터를 저장하는 하나의 하드웨어라고 할 수 있다. 즉, 각 PC와 스마트폰 모두 서버가 될 수 있는 것이다. 게임 서버의 경우 게임에 관련된 정보를 저장한 것이다. 게임을 즐기는 유저들의 pc는 클라이언트가 되어 게임 서버에 접속하여 게임을 즐긴다.

서버는 24시간 항상 동작하여야 한다.

2) 고정 IP를 사용한다. (즉, 고정불변!)

 

(2) 클라이언트

서버에 접속하는각 기기들을 클라이언트라고 하며 동적 IP를 사용한다.

 

 

5. IP,서브넷마스크, 게이트웨이, DNS서버

(1) IP

1) IP란 인터넷에 연결된 기기를 식별하는 번호이다.

2) 각 기기의 IP는 공유기에서 나온 개별 디바이스 가상 IP이다. WAN공유기의 경우 고정 IP이면서 공인 IP를 사용한다. WAN IP는 모두 다른데 서버 구축엔 WAN IP가 필요하다. 위에서 서술했다시피 WAN을 공유기를 통해 확장하여 LAN으로 개별 디바이스에 뿌린다. 이때 공유기는 개별 디바이스별로 가상 IP를 부여한다. 그렇게 해서 공유기에 연결된 각 기기들은 데이터를 공유기에 보내고 공유기는 다시 WAN으로 통신한다.

2) LTE의 경우 WAN이다. 그러나 고정IP는 아니고 공인IP이다.

 

(2) 서브넷마스크
IP가 2의 8승*5의 수로 이루어져 있기 때문에 공유기가 이를 모두 판단하기가 쉽지 않다. 그래서 맨 마지막 섹션만으로 판단할 수 있도록 서브넷마스크가 기능한다.
ex) 만약 192.168.0.5인 IP주소와 192.168.1.5인 IP주소가 통신한다면 통신이 되지 않는다. 맨마지막 섹션이 둘다 '5'로 동일하기 때문이다.

 

(3) 게이트웨이 : 공유기의 IP

 

(4) DNS서버
1) IP주소와 도메인 주소를 매칭하는 것이다.
※ cmd에서 'nslookup'을 치고 IP주소를 알고 싶은 도메인 주소를 치면 그 도메인의 IP주소를 알 수 있다.

※ 기본적으로 8.8.8.8이다.

 

※ cmd에서 'ipconfig'를 치면 해당 기기의 IP, 서브넷마스크, 게이트웨이, DNS서버 등을 알 수 있다.


6. 스위치(=허브)
스위치는 IP를 할달하거나 패킷전송을 하지 못한다. 따라서 공유기와는 다르다.
스위치는 여러 개를 사용할 수 있는데, 공유기는 1개만 사용 가능하다.
만약 공유기가 여러 대 있다면, 한 대만 공유기의 역할을 하고 나머지는 스위치로서만 기능한다.

 

7. 모듈화
1) 크고 복잡한 시스템을 기능별로 여러 개의 작고 단순한 모듈로 독립화한 것이다.
2) 자바에선 모듈이 class이다.

 

8. 버퍼
서버와 클라이언트가 통신할 때 2진수로 표현된 데이터를 주고 받는다. 이때 이 데이터를 처음부터 끝까지 통으로 읽어가는 것이 아니라 단위별로 잘라서 읽는데, 이때 아직 읽지 못한 데이터를 임시로 쌓는 부분을 버퍼라고 한다. 프로그래머는 버퍼의 사이즈를 설정해야 하는데, 작게 하면 버퍼가 계속 빨리 돌아야 해서 처리속도가 느려지고 크게 설정하면 임시저장할 데이터가 많아지니 PC가 느려진다.

 

9. OSI 7계층

(1) 물리계층
전송 매체의 물리적 인터페이스에 관한 사항을 기술한다. 또한 물리 계층만 하드웨어 시스템으로 구현한다.
물리 계층에서 다루는 전송 매체의 특성에는 물리적 연결 형태, 전송속도 등이 있다.

 

(2) 데이터 링크 계층 - MAC 주소
물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결한다.
데이터 링크 계층을 이용해 전송되는 데이터를 프레임이라고 하는데, 프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC주소가 기록된다.

 

※ MAC 주소 : 어떤 기기인지 알 수 있게 하는 주소이다. 랜카드 제조사에서 랜카드 안에 MAC주소를 박아넣기 때문에 절대 바뀌지 않는다. (LAN카드 주소, 메인보드에 있음)

(3) 네트워크 계층 - IP 주소
송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지 결정하는 라우팅 문제를 처리한다.
네트워크 계층에서는 전송 데이터를 패킷이라고 부르며 중개 과정에서 경로 선택의 기준이 되는 호스트 주소가 필요하다.

 

(4) 전송계층 - 포트 번호
송수신 프로세스 사이의 단대단 통신 기능을 지원한다.

 

(5) 세션계층

송수신 호스트 사이의 대화제어, 상호배타적인 동작을 제어하기 위한 토큰 제어, 일시적 전송 장애를 해결하기 위한 동기(synchronization) 기능 등을 제공한다.

 

(6) 표현계층

데이터의 의미와 표현 방법을 처리한다.

 

(7) 응용계층

대표적인 인터넷 서비스로 HTTP, FTP, Telnet 등이 있다.

 

 

10. TCP

(1) 연결형 서비스 지원

TCP는 신뢰성 있는 데이터 전송을 보장한다(신뢰성 프로토콜).

계속 연결이 되었는지 확인하고 데이터를 보내며, 데이터가 깨졌는지도 계속 확인한다.

중요한 데이터를 보낼 때는 보통 TCP를 쓰며 보통 1:1통신할 때 쓴다.

그러나 쓰레드로 나눠줄 때는 다수 통신도 가능하다.

그러나 UDP에 비해 속도가 느리다.

 

※ Three Way Hand Shaking

ACK : 통신 잘 받았을 때 / NACK : 통신 잘 못받았을 때

 

(2) TCP 프로토콜

1) 송수신 포트 번호

2) 순서번호

3) 응답번호

4) 체크썸 - 헤더-데이터에 대한 오류로 파일이 틀어지면 여기서 확인함

 

 

11. UDP

비연결성 서비스로 TCP처럼 연결을 확인하지 않고 그냥 데이터를 보낸다.

그래서 데이터가 전송되지 못하거나 깨질 수도 있다.

중요하지 않은 데이터를 보낼 때 사용하나 속도가 TCP에 비해 더 빠르다.

UDP는 유튜브나 아프리카티비에서 영상을 송출할 때 사용된다.

 

12. IP(Internet Protocol)

1) 기기의 주소를 뜻하는 IP와는 다른 개념이다

2) 비연결형이다.

3) Time to Live(TTL): '패킷생존시간'이 있다. 즉, 연결시간이 초과되면 패킷을 버려버린다.

 

※ TCP/IP

ex) 한국에서 미국으로 메일을 보낼 때 패킷이 10101 -> 10100 으로 바뀐 경우

체크섬을 통해 바뀐 부분을 원상태로 돌려놓을 수 있다.


13. 라우팅 / 라우터

1) 라우팅

송수신 호스트 사이에서 패킷을 전달하는 형식을 일컫는다.

2) 라우터

공유기와 비슷. 만약에 한국에서 미국으로 데이터를 전달할 때 가장 빠른 경로를 설정하는 것이다.

'웹 기초' 카테고리의 다른 글

[Web] 서버와 클라이언트  (0) 2020.07.21
[Web] WAS / Web Server / Web Container  (0) 2020.07.15
세션  (0) 2019.12.04
네트워크/TCP,IP  (0) 2019.11.25
웹&언어 기초  (0) 2019.11.04