[5주차] 서브넷과 서브넷 마스크
·
외부활동/JSCODE 네트워크
서브넷?서브넷, 즉 서브네트워크는 네트워크 내부의 네트워크입니다. 서브넷은 네트워크를 보다 효율적으로 만듭니다. 서브넷을 통해 네트워크 트래픽은 불필요한 라우터를 통과하지 않고 더 짧은 거리를 이동하여 대상에 도달할 수 있습니다. 서브넷을 나누면 네트워크 트래픽이 같은 서브넷 안에서 직접 처리되므로, 불필요한 라우팅 경로를 제거하여 효율성을 극대화할 수 있는 것입니다서브넷이 필요한 이유는?네트워크 크기를 더 세밀하게 조정할 수 있다. 필요한 만큼 IP를 배정받고 나머지 자원은 절약할 수 있다. 한 만디로, 네트워크 유연성 증가.기존에는 클래스 방식(클래스 A, B, C) 방식을 사용했는데, 클래스 방식은 고정된 서브넷 마스크를 사용해서 네트워크 세분화 제한이 많다.서브넷 마스크란?서브넷 마스크는 IP 주..
[4주차] UDP Checksum
·
외부활동/JSCODE 네트워크
Checksum데이터의 무결성을 검증하기 위한 오류 감지 메커니즘입니다. 전송된 데이터가 손상되었는지 확인을 위해 사용합니다.UDP는 체크섬으로 패킷 오류를 감지하지만, TCP처럼 오류를 제어하지는 않습니다.손상된 패킷은 수신 측에서 폐기되며, 애플리케이션 계층으로 전달되지 않습니다. UDP 체크섬 필드의 특징:16비트 크기의 필드입니다.계산에는 UDP 헤더, 데이터, 그리고 의사 헤더 (pseudo-header)가 포함됩니다.의사 헤더는 IP 주소, 프로토콜 번호, UDP 길이 등을 포함하며, 전송 계층 데이터와 네트워크 계층 데이터를 연계합니다.의사 헤더(Pseudo Header)의 역할:의사 헤더는 데이터 전송 중 IP 계층에서의 문제(예: IP 주소 오류)를 함께 감지하기 위해 사용됩니다. UDP..
TCP 빠른 재전송과 흐름제어 메커니즘
·
Network
빠른 재전송(Fast Retransmit)빠른 재전송(Fast Retransmit)은 TCP의 혼잡 조절에 추가된 정책이다. 패킷을 받는 쪽에서 먼저 도착해야 할 패킷이 도착하지 않고 다음 패킷이 도착한 경우에도 ACK 패킷을 보낸다. 단, 순서대로 잘 도착한 마지막 패킷의 다음 패킷의 순번을 ACK 패킷에 실어서 보낸다. 따라서 중간에 패킷하나가 손실되게 되면 보내는 측에서는 순번이 중복된 ACK 패킷을 받게 되고, 이것을 감지하는 순간 문제가 되는 순번의 패킷을 재전송해 줄 수 있다. 빠른 재전송은 중복된 순번의 패킷을 3개 받으면 재전송을 한다. 그리고 이런 현상이 일어나는 것은 약간 혼잡한 상황이 일어난 것이므로 혼잡을 감지하고 창 크기를 줄이게 된다. 한마디로, 데이터 전송 패킷 손실이 의심될 ..
TCP
·
외부활동/JSCODE 네트워크
TCP(Transmission Control Protocol)신뢰성과 연결 지향을 특징으로 하는 전송 계층 프로토콜데이터를 정확하고 순서대로 전달하기 위해 다양한 메커니즘을 제공왜 연결 지향이라고 하는거지?TCP는 데이터 전송 전에 송신자와 수신자가 연결을 설정(3-way handshake)하고, 데이터가 제대로 전송되었는지 확인하며, 연결을 종료(4-way handshake)하는 과정이 있기 때문에 연결 지향(Connection-Oriented)이라고 한다.3-way handshake?3-way handshake는 TCP 연결을 설정하기 위해 반드시 필요한 과정이다. 이유는 아래와 같다.양측의 통신 기능 여부 확인초기 시퀀스 번호(ISN) 교환연결 신뢰성 확보3-way handshake 동작 과정A클라..
파이프라이닝 프로토콜
·
Network
파이프라인 프로토콜은 데이터를 연속적으로 전송하며, ACK를 기다리지 않고 다음 데이터를 전송할 수 있는 효율적인 흐름 제어 방식입니다. TCP는 데이터를 전송할 때 파이프라인 방식을 사용하며, 이 방식에는 Go-Back-N과 Selective Repeat 기법이 있습니다. TCP는 두 기법을 혼합하여 신뢰성과 효율성을 동시에 구현합니다. Go-Back-N 방식은 receiver 측에서 순서대로 받지 못한 패킷이 있다면 해당 패킷부터 다시 재전송 하는 방식이다.Selective Repeat 방식은 receiver 측에서 받은 각각의 패킷들에 대해 ACK을 보내는 방식이다.요약전송후 대기 프로토콜은 패킷을 전송하고 그 패킷에 대한 수신 확인 응답을 받고나서,다음 패킷을 전송하는 방식 입니다. 이러한 방식은..
몰입[1]
·
독서
플로우팸이 일에 빠졌을 때 그녀의 의식 속에 들어오는 모든 정보는 그녀의 관심과 일치한다. 플로우는 심리적 엔트로피의 정반대 개념인데, 이런 까닭에 네겐트로피(negentropy)라고 불리기도 한다. 플로우 상태에서 우리는 심리적 에너지를 통제할 수 있다. 플로우가 가져다주는 큰 기쁨을 향유하기 위해서는 암벽 등반가가 보여주는 것과 같은 아주 집중된 주의력이 필요하다. 복합성과 자아의 성장복합성이란 두 가지 심리적 과정을 거친 결과이다. 이 두 과정을 각각 분화(differentiation)와 통합(integration)이라고 부른다. 분화라는 것은 자신을 유일하고 고유한 존재로 여기며 나아가려는 움직임으로, 자신을 다른 사람에게 분리하려고 하는 경향을 말한다. 한편 통합이라는 것은 그 반대의 경우로, ..
[4주차] UDP
·
외부활동/JSCODE 네트워크
UDP?UDP를 해석하면 사용자 데이터그램 프로토콜(규약)이라는 뜻인데 풀어 해석하면 아래와 같습니다.        데이터를 데이터그램 단위로 처리하는 프로토콜 여기서 데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻으로, TCP와 달리 UDP는 비연결형 프로토콜입니다. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하게 되고, 이러한 프로토콜을 UDP라고 합니다.  TCP와 달리 데이터의 신뢰성, 순서, 재전송을 보장하지 않지만, 빠른 전송 속도와 낮은 오버헤드가 특징입니다.출처: https://mangkyu.tistory.com/15 [MangKyu'..
377. Combination Sum IV
·
Algorithm/LeetCode
문제Combination Sum IVGiven an array of distinct integers nums and a target integer target, return the number of possible combinations that add up to target.The test cases are generated so that the answer can fit in a 32-bit integer.Example 1:Input: nums = [1,2,3], target = 4Output: 7Explanation:The possible combination ways are:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)Note that di..
RESTful하게 개발한다는 건 뭘까?
·
외부활동/JSCODE 네트워크
RESTful 원칙을 준수하여 개발한다는 건RESTful하게 개발했는지 묻는 질문은 REST 아키텍처 스타일을 잘 이해하고 그것을 기반으로 API를 설계했는지를 묻는 것이다. REST (Representational State Transfer)는 웹의 리소스를 클라이언트와 서버가 주고받는 방식에 대한 설계 원칙입니다. RESTful하게 개발했다는 것은 이 원칙을 따랐다는 의미로, 주로 다음을 만족해야 한다.리소스 기반 설계URI는 리소스를 명확히 나타내야 하며, 명사형으로 표현됩니다.예: /users, /orders/123HTTP 메서드의 적절한 사용CRUD 작업에 맞게 HTTP 메서드를 사용합니다.GET: 데이터 조회POST: 데이터 생성PUT/PATCH: 데이터 수정DELETE: 데이터 삭제상태 없음..
1143. Longest Common Subsequence
·
Algorithm/LeetCode
문제Given two strings text1 and text2, return the length of their longest common subsequence. If there is no common subsequence, return 0.A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.For example, "ace" is a subsequence of "abcde".A common subsequence of two str..