카테고리 없음

[상식] 네트워크와 운영체제

sian han 2023. 1. 5. 20:26

아래는 회사 OT 때 들었던 강의를 간단하게 정리한 것입니다. 


 

장치들은 네트워크를 통해 통신할 수 있다.

통신은 송신자와 수신자가 정보를 정확하게 전달하는 것이다. 매체가 없다면 통신은 이뤄질 수 없다.

대표적인 통신 매체로는 랜선, 광케이블 등이 있다. 

 

네트워크에서 매체를 통해 통신하는데, 이 매체는 일정한 정보 전송속도를 갖고있고, 이를 대역폭이라고 한다. 

'인터넷속도 100Mbps(bit per second)' 는 매체의 대역폭이 초당 100메가바이트의 정보를 전송할 수 있다는 뜻이다.

 

자원을 공유하기 위해 네트워크를 연결한다. 

자원을 공유하기 위해 LAN 과 WAN 을 사용한다. (=네트워크)

LAN 은 지역 내에 있는 컴퓨터들을 연결하는 네트워크이다.

WAN 은 LAN 의 집합으로, 지역을 초과하여 컴퓨터들을 연결하는 네트워크이다.

네트워크에 접속된 단말기를 HOST 라고 한다

 

통신에는 동기, 비동기 방식이 있다.

동기는 순서대로 진행되는 것이다. 클라이언트는 서버에 요청을 하고, 서버는 응답을 한다. 클라이언트는 응답을 받기까지 기다린다. 장점은 클라이언트의 요청과 응답이 확실하게 전달되어 신뢰성이 높다는 것이다. 핸드쉐이킹은 장치가 서로 연결되기 전 상태정보를 주고 받는 과정이다. 동기통신은 요청과 응답이 정확히 쌍을 이루기 때문에 요청과 응답이 제대로 이루어지기 전까지는 추가적인 요청을 할 수 없다. 

 

비동기 통신은 일정 시간 내에 응답이 오지 않을 수도 있다. 클라이언트는 요청을 보낸 후 리스너를 열어놓고 다른 작업을 수행할 수 있다. 

 

TCP 는 동기 프로토콜이다. 정보를 주고받는 과정에서 데이터가 손실되거나 순서가 잘못되는 경우가 있을 수 있는데, TCP 프로토콜은 정확성과 순서를 보장해준다. TCP 는 자원을 보낼 때 전송하기에 효율적인 크기로 자르는데, 잘려진 각각의 데이터 덩어리를 패킷이라고 한다. 

IP 는 통신할 때 각각의 컴퓨터를 식별할 수 있는 주소이다. 

TCP 는 컴퓨터 간에 자원을 주고받을 때 IP 주소를 이용한다. 

 

UDP 는 비동기 프로토콜이다. 연결 없이 전송되기 때문에 속도가 빠르지만 신뢰성이 낮다. 오디오, 비디오스트리밍, 음성통화 등에서 사용하기에 적합하다. 이런 자원은 한개의 패킷이 없어져도 티가 안나기 때문이다. 

P2P 는 UDP 를 사용한다. P2P 는 클라이언트-서버 시스템과 달리 컴퓨터간의 직접적인 연결을 사용하기 때문에 속도가 빠르다. 그렇지만 정보가 저장된 컴퓨터가 서버가 아니기 때문에 컴퓨터가 장애가 나면 정보를 제공할수 없게 된다. 대표적으로는 Skype, 토렌트가 있다. 

 

HTTP는 TCP/IP 구조의 통신 프로토콜이다. 웹서버와 웹브라우저간에 웹페이지를 주고받을 때 사용한다. HTTP는 기본적으로 동기 통신이지만 HTTP/2 부터 비동기 통신도 지원한다.

HTTP 프로토콜은 패킷을 수집하는 것 만으로 도청할 수 있으며 , 평문으로 통신할 경우 메세지의 의미를 파악할 수 있기 때문에 암호화가 필요하다. 따라서 SSL (Secure Socket Layer) 이라는 다른 프로토콜을 조합함으로써 HTTP의 통신내용을 암호화 할 수 있으며, 이것을 HTTPS 라고 한다. 

 

HTTP 요청과 응답은 각각 header 와 body 로 구성되어있다.

header 는 요청, 응답 과 관련된 정보를 저장한다.

body 는 요청, 응답과 관련된 추가적인 정보를 저장한다.

 

라우팅은 네트워크에서 경로를 찾아가는 것이다. 라우터는 경로를 찾아갈 때 (라우팅) 필요한 정보를 갖고 있다. 

 

Linux 운영체제에서 네트워크 상태를 확인할 수 있는 명령어

ifconfig : 인터페이스의 이름, IP 주소, 브로드캐스트주소, 마스크 주소 등의 정보를 확인할 수 있다.

netstat : 컴퓨터가 사용하고 있는 네트워크 연결과 관련된 정보(소켓의 상태, 종류, 상대방 주소)를 확인할 수 있다. 

 

운영체제는 컴퓨터의 모든것을 관리한다.

운영체제는 각 프로그램을 식별할 수 있는 고유한 PORT 를 할당한다. 운영체제는 PORT 를 이용해 각 프로그램을 구분하고, 자원을 할당한다. 운영체제는 기본적으로 일부 포트를 예약하고 있다. HTTP 프로토콜은 80 포트, HTTPS 프로토콜은 443번을 사용하고 있다. 만약 운영 체제가 사용가능한 포트가 없는 경우 새로운 포트를 연다. 

 

운영체제는 파일을 읽고 쓰는 기능을 제공한다. 이를 위해 운영체제는 파일을 참조할 수 있는 고유한 식별자인 file pointer 를 사용한다. file pointer 는 파일에서 ㅇ릭거나 쓸 수 있는 위치를 의미한다. 운영체제는 file pointer 를 이용해 파일의 읽기 쓰기 위치를 이동하거나 기록할 수 있다. 

 

데드락은 두 개 이상의 프로세스가 서로의 작업이 끝나기만을 기다리고 있어 둘 다 영원히 끝나지 않는 상황을 가리킨다. 

 

CDN이용자와 가까운 곳에 위치한 캐시서버를 통하여 컨텐츠를 배포함으로써 빠르고 안정적인 서비스를 제공하는 기술이다

프록시 서버 (이하 프록시)는 요청을 전달받은 서버가 아닌 다른 서버에 요청을 전달하는 서버를 의미한다. 프록시 서버는 요청을 전달받은 후 요청을 처리할 수 있는 서버에 전달한다. 

 

정적 웹은 웹서버에 저장된 그대로 제공된다. 웹서버에 접속한 클라이언트가 웹서버에 저장된 정적 웹 페이지를 요청할 경우 웹 서버는 요청 받은 정적 웹페이지를 그대로 제공한다. 서버는 파일을 전송해주는 역할만 하고, 동작과 실행은 브라우저에서 한다.

 

동적웹은 서버에 저장된 정적인 웹 페이지가 아닌, 웹 서버가 요청을 보낼 때 마다 새로운 웹페이지를 생성해서 제공한다. 웹페이지의 정보가 변경될 경우 웹페이지를 수정할 필요가 없다. 웹 서버는 요청을 받고, 처리하기 위해 필요한 정보를 조회하거나 처리한 후 새로운 웹 페이지를 생성해서 제공한다. 

PHP 는 요청이 있을 때마다 서버가 새로운 웹 페이지를 생성해서 제공할 수 있기 때문에 동적웹과 연관있다.