본문 바로가기
컴퓨터 공학/컴퓨터 네트워크

컴퓨터 네트워크 3강

by 조엘 2020. 4. 9.

이번 학기에 전공 수업으로 컴퓨터 네트워크를 수강 중입니다. 공부하면서 적는 포스팅이니, 내용이 정확하지 않을 수 있습니다. Computer Networking (7th edition) - Jim Kurose, Keith Ross 책을 기반으로 작성하였습니다. 오류가 있다면 친절하게 알려주시면 감사하겠습니다!!

 

**해당 포스팅을 참고하여 작성하였습니다!**

https://blog.naver.com/PostView.nhn?blogId=myca11&logNo=221389847130&categoryNo=24&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView

 

소켓(Socket) 포트(Port) 뜻과 차이

나도 개발자지만 소켓과 포트의 정확한 의미 차이가 헷갈릴 때가 있어서, 최근에 다시 꼼꼼하게 공부를 했...

blog.naver.com

 

0. 애플리케이션 계층

- 3강에서는 애플리케이션 계층의 개념, 구현에 대해 알아본다. + 트랜스포트 계층의 내용도 약간 섞인다. 

- 애플리케이션 계층의 2가지 운용 방법, Client-Server, P2P에 대해 알아본다. 

- 애플리케이션 계층에서는 정보를 트랜스포트 계층을 통해 보낸다. 어찌 소통하는지 알아본다. 

  * 애플리케이션 계층에서 네트워크 코어 장치(라우터 등)에 접근하는 프로그램은 필요 없다. 각각의 end system에서 돌아가는 프로그램을 만든다. 

 

 

1. 용어 정리

- Host : IP주소가 있는 네트워크가 연결된 Node. 스마트폰, 노트북 모두가 인터넷 연결이 되어 있다면 Host! 

- Process : Host 안에서 돌아가는 프로그램

 

 

2. Client-Server

- Server : 언제나 켜져 있는 호스트 / 영구적인 IP 주소

- Client : 서버와 소통 / 간헐적으로 연결 / 동적 IP 주소 / 클라이언트끼리 직접 소통 X

 

 

3. P2P (Peer-to-Peer)

- 항상 켜져있는 서버 X / 장치들끼리 서로 서비스 요청, 응답 / 간헐적으로 연결하며, IP 주소 변동 가능

 

 

4. Process Communication

- 같은 호스트 안에서는 2개의 프로세스가 OS에 의해 정의된 inter-process-communication으로 소통

- 다른 호스트끼리는 특정 message를 주고받는다. 

- Client Process는 통신을 초기화하고, Server Process는 통신이 오기까지 기다린다. 

- P2P같은 경우에는 장치가 Client Process와 Server Process 둘 다 가진다. 

- 네트워크에서 데이터를 주고받는다는 것은 호스트의 프로세스에 데이터가 오고 감을 의미한다. 

 

 

5. Port

- 호스트 내부의 프로세스가 할당받는 고유값! 이를 통해 데이터가 어떤 프로세스로 가야 할지 방향을 잡는다.

- 다른 호스트끼리 주고 받는 message엔 식별자가 필요하다. 이 식별자가 "IP 주소 + 포트 넘버"로 구성된다.

 

 

6. Socket

- 네트워크를 통해 데이터 주고받을 때 프로세스의 "문(door)". 

- 데이터를 아무나 들이고 아무나 보낼 수 없으니! 신원확인 정도는 해야하지 않겠는가. Socket이 바로 위병소(?) 같은 곳이다. IP 주소, 포트 넘버, 프로토콜을 제시해야 문이 열린다. 

 

 

7. 애플리케이션 프로토콜에는...

- 교환된 메시지의 종류, 메세지 syntax, 메시지 semantics, 언제/어떻게 메시지가 송수신되어야 하는지의 규칙이 담긴다

 

 

8. 애플리케이션 계층의 프로그램에서 요구하는 Transport Service

- 신뢰할 수 있는 데이터 전송, 시간 보장, 프로그램에 따른 요구 처리량

- 어떤 프로그램이나에 따라 해당 부분들이 용서가 될 수도, 완벽히 지켜야 할 수도 있다. 

 

 

9. Transport Layer에서 사용하는 프로토콜 2개

- 데이터를 보내기 위한 프로토콜 TCP와 UDP가 있다. 

- TCP : 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

 * 패킷을 전송하기 위해 경로를 배정하기 때문에, 신뢰성 보장! But 약간 느림

- UDP : 데이터를 데이터그램 단위로 처리하는 프로토콜

 * 경로 설정 X, Fast, 네트워크 부하 low! But, 신뢰성 있는 데이터 전송 보장 X

 

 

10. TLS/SSL로 TCP 보호하기!

- TCP는 하지만 암호화 되어있지 않아 보안에 위협이 될 수 있다. (UDP도 마찬가지)

- TLS/SSL은 애플리케이션 계층에 있는 라이브러리로 다음과 같이 동작한다. 

 애플리케이션 -> TLS/SSL에서 암호화 -> 암호화된 메시지 TCP 소켓으로 전달

반응형

'컴퓨터 공학 > 컴퓨터 네트워크' 카테고리의 다른 글

TCP/IP 5계층  (0) 2022.01.30
데이터 교환 방식 (서킷 스위칭 & 패킷 스위칭)  (0) 2022.01.29
인터넷이란?  (0) 2022.01.28
컴퓨터 네트워크 2강  (0) 2020.04.08
컴퓨터 네트워크 1강  (0) 2020.04.07

댓글