일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Spring
- 백준
- 부분수열의합2
- 유니온파인드
- 기본유형
- 싸피
- 코드트리
- 그래프
- 다익스트라
- DP
- 완탐
- 알고리즘
- 자바
- DFS
- 코딩테스트실력진단
- 그리디
- 코테
- 코딩테스트
- JPA
- database
- SSAFY
- 다시보기
- 완전탐색
- 알고리즘기본개념
- 트러블슈팅
- JUnit
- Java
- Union Find
- SWEA
- BFS
- Today
- Total
목록CS-STUDY/컴퓨터 네트워크 (7)
HwangHub
보호되어 있는 글입니다.
우리는 보통 TCP와 견주어 UDP를 많이 학습합니다. UDP의 대표적 특징으로는 아래 항목들이 있습니다. 비연결형 프로토콜이다. TCP와 달리 handshake를 하지 않아 속도'는' 빠르다. 하지만 패킷의 유실 관리나 순서 보장을 하지 않아 신뢰성 있는 통신이 불가능하다. 주로 DNS에 IP 주소 요청할 때, DHCP에 사용된다. 개인적으로는 오늘날에는 인터넷 속도도 빠르다보니 신뢰성 있는 통신의 가치가 더 높다고 생각하여 현대 사회에서 대부분의 통신은 TCP 기반으로 이루어질 것이라 생각하였습니다. 실제로 웹 통신에서는 HTTP 통신이 가장 많이 쓰이는데 이게 기본적으로 TCP 기반으로 알려져 있죠. 근데 다시 네트워크를 공부하다가 신기한 사실을 알아냈습니다. 충격적이게도 모든 HTTP가 TCP로 ..
지난 시간에 OSI 7 Layer나 TCP/IP Stack에 대하여 다뤘다. 자바로 네트워크 이해하기 1 - OSI 7 Layer? ("자바로 네트워크 이해하기"이지만, 아직은 자바 코드가 등장하진 않는다. 통신 과정에서 코드로 설명해 볼 예정이다.) 네트워크가 뭐지요? 네트워크는 유선 또는 무선으로 여러 컴퓨터들을 연 hwanghub.tistory.com 여러 레이어를 거치며 통신이 이루어진다고만 이해해도 일단은 괜찮다 더 중요한 건, 통신의 목적이 되는 "중요 데이터"를 어떻게 주고받는가 이다. 이렇게 통신의 목적이 되는 중요 데이터를 어떤 규약으로 통신하는가를 담당하는 레이어는 Transport Layer이다. 전송 레이어라고도 하며, 여기에는 TCP와 UDP라는 두 개의 프로토콜이 메인을 이루고 ..
("자바로 네트워크 이해하기"이지만, 아직은 자바 코드가 등장하진 않는다. 통신 과정에서 코드로 설명해 볼 예정이다.) 네트워크가 뭐지요? 네트워크는 유선 또는 무선으로 여러 컴퓨터들을 연결하는 것을 의미한다. 어릴적 스타크래프트를 한 사람들은 LAN이라는 용어가 익숙할 것이다. LAN은 지역 네트워크를 이용하는 것으로, 지역망을 구축하기만 하면 인터넷을 통하지 않고도 컴퓨터끼리 통신하여 게임을 즐길 수 있었다. 사실 우린 어릴적 의식하고 사용하지 않았지만, 스타크래프트는 네트워크에 대하여 노골적으로 전문적인 이해를 요구했던 것 같다. 이처럼 LAN은 가정이나 회사 등 특정 영역에 존재하는 컴퓨터를 연결하는 네트워크를 의미하고, 이러한 LAN을 연결하는 걸 Wide Area Network라 하여 WAN이..
컴퓨터는 기본적으로 0과 1로 이루어진 이진 데이터를 처리합니다. 이러한 이진 데이터를 사람이 이해할 수 있는 문자로 변환하기 위해 인코딩이 사용됩니다. 아스키부터 유니코드까지 컴퓨터 인코딩의 역사는 미국에서 컴퓨터를 개발하면서 시작되었습니다. 처음에는 간단한 영어 문자를 숫자로 변환하는 아스키(ASCII) 코드가 사용되었습니다. 아스키 코드는 7비트로 표현되는데, 이는 128개의 다른 문자를 표현할 수 있음을 의미합니다. 이는 대소문자 알파벳, 숫자, 일부 특수 문자를 포함합니다. 그러나, 아스키 코드로는 다양한 언어와 특수 기호를 모두 표현할 수 없었습니다. 이를 해결하기 위해 아스키 코드를 확장하여 국제 규격에 맞게 일부 특수 기호들(pound 등)을 추가한 인코딩 코드인 ISO-8859-1이 등장..
채팅을 구현할 때나 push 알림을 구현해야 할 때 자연스럽게 소켓 방식을 사용한다고 이해하고 있었는데, 여기서 소켓이라는 개념이 정확히 어떤 느낌인지 네트워크 전공수업을 들을 때에도 명확하게 이해하기가 어려웠다. 생각이 난 김에 공부하고, 이를 내 언어로 정리해 보았다. 웹 소켓은 오늘날 웹 환경에서 두 컴퓨터 간 통신을 하는 방식 중 양방향 통신을 구현할 수 있는 표준 기술이다. 그간 통신 방식을 훑어보면서 웹 소켓 방식에 대해 이해해보자. 단순 터미널 텍스트 통신 가장 원시적인 방법이자 통신의 시작 IP와 포트를 지정하여 특정 컴퓨터 간 터미널에서 텍스트를 주고받았던 방식 윈도우 기준 아래처럼 파워쉘에서 그냥 상대 ip 주소와 포트 번호를 지정하여 udp 또는 tcp로 텍스트를 통신하는 개념이라고 ..
SSH Secure Shell (Protocol)의 줄임말로, 두 컴퓨터 간 통신을 할 수 있게 해주는 하나의 프로토콜입니다. 우리들은 이미 HTTP, HTTPS 등의 프로토콜을 사용하여 다른 컴퓨터에 요청을 보내고 받는 작업을 수없이 하고 있죠. 서로 다른 컴퓨터 간 웹 페이지를 요청하고 받기 위해 브라우저를 사용하여 통신할 때 HTTP 또는 HTTPS를 사용하듯이, 데이터 전송과 원격 제어를 하기 위해 서로 다른 컴퓨터 간 shell을 통해 통신합니다. SSH 통신의 목적 데이터 전송 원격 제어 우리가 가장 일반적으로 마주할 수 있는 SSH 통신은 GitHub 등의 원격 레포지토리에 소스코드 파일을 push와 pull할 때 일어납니다. 또한 AWS와 같은 클라우드 서비스를 이용할 때 EC2와 같은 인..