OSI(Open Systems Interconnection Reference Model) 모형은 ISO(국제표준화기구)에서 개발한 모델로써, 컴퓨터 네트워크 프로토콜 디자인과 통신 계층으로 나누어 설명한 것입니다. 이를 일반적으로 OSI 7 계층 모형(OSI 7 layer model)이라고 합니다.
그렇다면, 여기서 계층(layer)라는 것은 무엇일까요?
계층은 비슷한 함수, 즉 비슷한 기능을 하는 것들끼리, 모듈끼리, 객체끼리 그룹화 해놓은 것을 말합니다.
What is the layer?
The layer is a grouping of common functions, modules, objects(Object oriented language)
OSI 7 layer model은 다음과 같은 7개의 층으로 분류되어 있습니다.
2. Why 7 layer?
왜 이러한 구조를 갖게 된 것일까요? 즉, 이러한 층 분류로 인한 이점은 무엇일까요?
먼저 이점을 말하면 다음과 같습니다.
1. 단순함
- 설계하기 쉽다.
일단 각 층과 그들의 상호작용이 명확하게 정의되면, 계층들은 전반적인 분할 과정을 통해 디자인, 구현, 테스팅이 간단해집니다.
- 유지가 쉽고 간편하다.
즉, 각 계층의 프로토콜은 다른 계층의 프로토콜들과 나뉘어져 설계될 수 있습니다.
- 계층이 없이 하나로 구성된 구조는 비용이 많이들고 유연성이 없으며 금방 구식이 됩니다.
2. 유연성
- 계층 구조는 다른 레이어를 변화 시킬 필요 없이 포함된 프로토콜들과 서비스들을 수정하는데 유연성을 제공합니다.
- 쉬운 수정
즉, 다른 계층의 수정과 별개로 각 층을 수정하고 개발하는 것이 쉽습니다.
- 쉬운 향상
새로운 계층을 더하거나 새로운 기능을 계층에 더하는 변화를 점점 증가시킬 수 있습니다.
단점으로는, 많은 계층들로 인해 유발되는 딜레이로 발생하는 오버헤드가 있습니다.
즉, 계층 구조의 장점으로는 공통된 기능을 하는 계층끼리 묶여있고 다른 기능을 하는 것들 끼리는 나위어져 있으므로 각각에 대해 설계하기 용이하고 유지 보수가 쉽고 간편합니다. 또한 각 층에 대한 수정 및 향상이 필요할 때 다른 계층과 별개로 해당 계층에 대해서만 수정 및 향상을 진행할 수 있기에 유연성이 뛰어납니다.
하지만 많은 계층이 존재할때는, 그들이 딜레이를 유발시켜 오버헤드가 발생할 수 있다는 단점이 있습니다.
Why a layer architecture?
What is the advantage and disadvantage of this layered architecture?
First of all, here are some of these points.
1. Simplicity:
- easy to design
once layers and their interaction are defined clearly, layering simplifies design, implementation, and testing by partitioning overall.
- Simple and easy maintenance
That is, protocol in each layer can be designed separately from those in other layers.
- Monolithic non-layered architectures are costly, inflexible, and soon obsolete.
2. Flexibility
- Layering provides flexibility for modifying and evolving protocols and services without having to change layers below.
- Easy modification
That is, easy to modify and develop networks by separate layers modifications.
- Easy enhancement
Incremental changes: add new layers, add new functions to a layer.
The disadvantage is the overhead incurred by delays caused by many layers.
That is, the advantages of the layered architecture are that they are tied together in a hierarchy that has a common function, and that they are different from each other, making them easy to design and easy to maintain. And when you need to modify and enhance each layer, you have the flexibility to make modifications and enhancements to that layer separately from other layers. However, there is the disadvantage. When there are many layers, they can cause delays and cause overhead.
3. 물리 계층(physical layer)
물리 계층에서는 오직 communication과 데이터 전송을 합니다. 즉, 물리적인 의사소통만을 담당합니다.
주로 물리적 전송 매체를 관리하고 지원하는 물리 계층은 기계적, 전기적 및 타이밍 인터페이스를 담당하며 물리 계층 아래에 있는 물리적 전송 매체를 주로 다루고 있습니다. 설계시에는 한쪽이 1비트를 전송했을 때, 다른 쪽이 0비트가 아닌 1비트로 수신되도록 하는 것을 신경써야 합니다.
At the physical layer, only communication and data transmission. That is, they are only responsible for physical communication.
The physical layer, which primarily manages and supports the physical transmission medium, is responsible for the mechanical, electrical, and timing interfaces and is primarily concerned with the physical transmission medium below the physical layer. When designing, one should be careful that one bit is transmitted and the other is received as one bit instead of 0 bit.
4. 데이터 링크 계층(data link layer)
데이터 링크 계층에서는 주로 4가지의 기능이 있습니다.
먼저, Service to neighbors(Service to neighbor layer)가 있습니다.
이웃한 계층들에게 잘 정의된 서비스 인터페이스를 제공해 주는 것으로써 이웃한 물리 계층과 네트워크 계층에게 제공합니다. 주로 확인되지 않은 비연결형 서비스(Unacknowledged connectionless serviece), 확인된 비연결형 서비스(Acknowledged connectionless service), 확인된 연결형기반 서비스(Acknowledged connection-oriented service), 이 세가지 서비스를 제공합니다.
두번째는 Framing 입니다.
데이터 링크 계층이 네트워크 계층에 서비스를 제공하기 위해서는 물리 계층에서 제공하는 서비스를 이용해야 합니다. 하지만 물리 계층이 제공하는 비트 스트림(bit stream)은 오류가 존재할 수 있습니다. 수신된 비트의 수가 송신된 비트의 수보다 작거나, 같거나 또는 더 클수 있으며 이들은 상이한 값을 가질 수 도있습니다. 따라서 데이터 링크는 이러한 오류를 찾아내고 필요한 경우 수정하는 기능을 해야 합니다. 그렇게 하기 위해서, 데이터 링크는 프레이밍을 실시합니다. 데이터를 프레임(frame)으로 그룹화하여 전송하는 것 입니다. 즉 프레이밍은 물리계층에 의해 제공된 비트 스트림을 분리된 프레임으로 나누는 것 입니다. 그리고 각 프레임에 대해 체크섬(checksum)을 계산합니다. 그리고 프레임이 목적지에 도달하였을 때 그 체크섬은 다시 계산됩니다. 만약 새롭게 계산된 체크섬이 사전에 프레임에 기록되어 있는 프레임과 다르다면 데이터 링크 계층은 오류가 발생함을 알 수 있고 이를 수정하는 과정을 가집니다.
다음으로는 흐름 제어(Flow control) 입니다.
데이터를 보내는 측과 받는 측간의 속도를 확인하여 이를 제어하는 것입니다. 데이터를 보내는 측의 속도가 상대적으로 빠를 때, 전송에 오류가 없다고 하더라도 특정 시점에서 수신하는 측은 프레임이 도착하자마자 처리할 수 있는 능력이 되지 않아서 일부 프레임을 손실하게 됩니다. 따라서 데이터 링크 계층은 데이터를 받는 측이 속도가 느릴때 빠르게 데이터를 전송하는 측에 의해서 막히지 않도록 속도를 규제합니다.
마지막 네번째는 오류 제어(Error control)입니다.
모든 프레임이 최종 목적지에 올바른 순서로 전달되었는지 확인하여 전송된 오류를 처리하는 것입니다. 미확인된 비연결형 서비스에서는 오류 제어가 문제되지 않겠지만 확인된 연결지향형 서비스에서는 문제가 될 것입니다. 따라서 오류를 검출하고 수정하는 기능이 필요합니다. 오류 검출 코드는 단지 전송중에 발생한 오류의 존재 여부만을 수신측이 알 수 있도록 하는 코드로써, 패리티검사(Parity check), 검사합(Checksum), 순환중복검사(Cyclic Redundancy Code) 등이 있습니다. 오류 수정 코드는 무엇이 잘못되었는가를 충분히 알 수 있는 여분의 정보를 포함시켜 수신측이 직접 오류를 고칠 수 있게하는 코드로써, 부호어(codeword), 해밍 부호(Hamming code) 등이 있습니다.
Data link layer has four main issues.
First, there is Service to neighbors(Service to neighbor layer).
It provides neighbors with a well-defined service interface to neighboring physical and network layers. It mainly provides these three things: Unacknowledged connectionless services, Acknowledged connectionless services, and Acknowledged connection-oriented services
The second is Framing.
In order for the data link layer to provide services to the network layer, it must use the services provided by the physical layer. However, the bit stream provided by the physical layer may have errors. The number of received bits may be less than, equal to, or greater than the number of transmitted bits, and they may have different values. Therefore, the data link must be able to detect these errors and correct them if necessary. To do so, the data link performs framing. Data is grouped into frames and transmitted. Framing is the division of the bit stream provided by the physical layer into separate frames. It then calculates a checksum for each frame. It then calculates a checksum for each frame. The checksum is recalculated when the frame reaches its destination. If the newly computed checksum differs from the frame previously recorded in the frame, the data link layer knows that an error has occurred and has process to correct it.
Next is the Flow control.
It checks the speed between the sender and receiver of data and controls it. When the data sender is relatively fast, even if there is no error in the transmission, the receiver at some point will not have the ability to process the frame as soon as it arrives and will lose some frames. Therefore, the data link layer regulates the flow of data so that when receiver's speed is slow, it is not swamped by fast senders.
The last, fourth is Error control.
It is to ensure that all frames are delivered to the final destination in the correct order and handle the errors that have been sent. Error checking will not be a problem for unacknowledged connectionless services, but it will be a problem for the acknowledged connection-oriented services. Therefore, data link layer need the ability to detect and correct errors. The error detection code is a code that allows the receiver to know only whether an error occurred during transmission. The error detection code includes a parity check, checksum, and cyclic redundancy code(CRC). An error correction code is a code that allows the receiver to correct an error by including extra information enough to know what is wrong, such as codeword and Hamming code.
5. 네트워크 계층(Network layer)
네트워크 계층은 Routing, Congestion control, Internetworking 의 기능을 수행합니다.
먼저 라우팅이란, 어떤 네트워크 안에서 통신 데이터를 보낼 경로를 선택하는 과정을 말합니다.
라우팅 알고리즘으로는 비적응형(Non-adaptive), 정적(static) 알고리즘으로 Shortest Path Routing,
Flooding: Selective Flooding, Flow-Based Routing이 있으며 적응형(Adaptive), 동적(dynamic) 알고리즘으로 Distance Vector Routing, Link State Routing, Hierarchical Routing이
있습니다.
두번째로 혼잡 제어(Congestion control)이 있습니다.
먼저, 혼잡(Congestion)이란, 현재의 서브넷에 많은 패킷이 들어올 때 수행능력이 감소하는 것을 말합니다. 아래
그림을 보면 트래픽이 너무 많이 증가함에 따라 라우터가 더 이상 이를 대처할 수 없게되며 패킷 손실이 시작됩니다. 이러한 상황은 사태를 점점 더 악화시키는 경향이 있습니다. 매우 높은 트래픽에서 성능은 완전히 붕괴되어 거의 모든 패킷이 전달되지 않습니다.
이러한 혼잡을 제어하는 기능을 혼잡제어라고 합니다. 일반적인 혼잡 제어의 원칙으로는 개방 루프(Open loop)와 폐쇄 루프(Closed loop), 두가지가 있습니다. 개방루프는 본질적으로 좋은 설계를 하여 처음부터 혼잡이 발생하지 않도록 하는 것이며 폐쇄 로프는 피드백 루프의 개념을 기반으로 하는 것입니다. 또한 아래 그림과 같이 많은 계층 혼잡 제어의 원칙이 있습니다.
또한 혼잡 제어의 알고리즘으로는 다음과 같은 것들이 있습니다.
Choke Packets: 수신측에서 송신측에 전송하는 전송 지연 신호로써, 송신측의 데이터 전송 속도를 조절하는 알고리즘 입니다. 수신측에서 일정한 시간(Choke Packet)을 송신측에 전송할 때마다 송신측은 일정한 시간만큼 데이터 전송 시간을 늦춥니다. 지연 중지 시간(Time Out)에 수신측에서 Choke Packet이 없는 경우 송신측은 다시 원래 속도로 데이터를 전송합니다.
Hop-by-hop choke packets: 고속 또는 장거리에서 Choke Packet을 보내는 것은 반응이 너무 느리기 때문에 제대로 작동하지 않습니다. 이를 막기위한 방법으로는 Packet이 통과하는 모든 hop에서 효과를 발휘하도록 하는 것입니다. 이러한 방식을 통해 더 많은 버퍼 업스트림을 사용하게 되지만 신속하게 문제를 해결할 수 있습니다.
Load Shedding: 위의 방법을 통해 혼잡이 제어되지 않을때 Load Shedding 방법을 사용할 수 있습니다. Load Shedding은 라우터가 처리할 수 없는 패킷으로 범람되고 있을 때 그들을 버려버리는 방법입니다.
Jitter Control: 일반적으로 지터(Jitter)란 종단간의 전송 지연의 분산을 의미합니다. 네트워크 계층에서는 경로를 따라 각 홉의 예상 통과시간을 계산하여 지터를 제한 할 수 있습니다. 패킷이 라우터에 도착하면 라우터는 패킷이 일정보다 늦거나 빠른지 확인합니다. 이 정보는 패킷에 저장되며 각 홉에서 업데이트 됩니다. 패킷이 일정보다 빠른 경우 일정 시간 동안 패킷을 다시 가져올 수 있도록 하며 일정보다 늦은 경우 해당 패킷을 빨리 꺼냅니다.
하지만 최근 멀티미디어 네트워킹이 성장함에 따라서 위와 같은 임시적인 조치만으로는 충분하지 않습니다. 따라서 어플리케이션 요구에 맞는 서비스 품질을 제공하는 방법에 대해 살펴보겠습니다.
QoS(Quality of Service)는 신뢰성, 지연, 지터 및 대역폭으로 결정됩니다.
마지막으로 Internetworking 입니다.
문자 그대로 네트워크 간의 교류(통신)하는 개념 혹은 기술 전반을 말합니다. 다시말해 독립적으로 움직이는 개개의 네트워크간의 접속을 의미합니다. 예를 들어, 여러 독립적인 LAN을 WAN을 통해서 연결하는 것입니다.
...학습중...
The network layer functions as routing, congestion control, and internetworking.
First, routing refers to the process of selecting a route to send communication data within a network.
Routing algorithms include non-adaptive and static algorithms such as Shortest Path Routing, Flooding: Selective Flooding, and Flow-Based Routing. Adaptive and dynamic algorithms are used for distance vector routing, Link State Routing, and Hierarchical Routing.
The second is congestion control.
First, congestion refers to a decrease in performance when many packets arrive on the current subnet. In the picture below, as traffic increases too much, the router can no longer cope with it and packet loss begins. This situation tends to make things worse and worse. At very high traffic, performance is completely collapsed and almost no packets are delivered.
The ability to control this congestion is called congestion control. There are two general congestion control principles: Open loop and Closed loop. An open loop is essentially a good design to avoid congestion from the beginning, and a closed loop is based on the concept of a feedback loop. There are also many layer congestion control principles as shown below.
There are also the following congestion control algorithms.
Choke Packets: This is a transmission delay signal transmitted from the receiver to the transmitter. It is an algorithm that adjusts the data transmission speed of the transmitter. Whenever a certain time (Choke Packet) is transmitted from the receiving side to the sending side, the sending side slows down the data transmission time by a certain amount of time. If there is no Choke Packet on the receiver side in the delay stop time (Time Out), the sender transmits the data again at the original speed.
Hop-by-hop choke packets: Sending choke packets at high speeds or long distances will not work properly because the response is too slow. A way to prevent this is to make sure that the packet is effective on all the hops through it. This approach uses more buffer upstream, but can quickly resolve the problem.
Load Shedding: You can use the Load Shedding method when congestion is not controlled through the above method. Load shedding is a way of discarding packets that are flooded with packets that the router can not process.
Jitter Control: In general, jitter is the dispersion of the transmission delay between the end points. At the network layer, you can limit jitter by calculating the expected transit time for each hop along the path. When a packet arrives at the router, the router checks to see if the packet is later or faster than the schedule. This information is stored in the packet and updated at each hop. If the packet is faster than the schedule, it will allow the packet to be retrieved again for a certain period of time.
However, due to the recent growth of multimedia networking, such temporary measures are not enough. So let's look at how to provide quality of service to your application needs.
Quality of Service (QoS) is determined by reliability, latency, jitter, and bandwidth.
Finally, Internetworking.
... learning ...
* 7 계층 정리
위에서 학습한 7계층에 대해서 간단히 정리해보면 아래와 같습니다.
1 계층, Physical layer: 물리적 매체를 통해 비트(bit)흐름을 전송하기 위해 요구되는 기능들을 조정합니다. 설계시에 보내는 비트가 0비트 일때 받는 측에서 1비트가 아닌 0비트를 받을 수 있도록 주의해서 설계를 해야합니다. 해당 계층이서는 원시 데이터를 송수신 합니다.(raw data sending and receiving)
2 계층, Data link layer: services provided to neighbor layers, 이웃된 레이어에게 서비스를 제공합니다. 또한 오류 없이 한 장치에서 다른 장치로 프레임을 전달하는 역할을 합니다. 이를 위해 framing을 진행하며, error management(error detection and correction), flow control 기능을 수행합니다. 또한 하나의 링크를 공유해서 여러 장비가 다중 접속되어 있는 경우 collision(충돌)이 발생할 수 있기에 이를 관리하는 역할을 한다.
3 계층, Network layer: 다중 네트워크 링크에서 패킷(Packet)을 발신지로부터 목적지로 전달하는 책임을 갖습니다. 발신지와 목적지의 경로를 선택하기위해 routing 기능을 수행합니다. 또한 전달시 생기는 혼잡을 제어하는 congestion control 기능을 수행합니다. internetworking 기능을 통해 개개의 네트워크가 서로 접속될 수 있도록 합니다.
4 계층, Transport layer: services provided to neighbor layers, 이웃된 레이어에게 서비스를 제공합니다. 데이터를 끝에서 끝으로 전송하는 역할을 하며 데이터 전송을 책임지는 연결을 관리하는데 이것은 전체 프로토콜 계층 구조의 핵심입니다. 이 작업은 현재 사용중인 실제 네트워크 또는 네트워크와 독립적으로 원본 컴퓨터에서 대상 컴퓨터로 안정적이고 비용이 효율적인 데이터 전송을 제공하는 것 입니다. 대표적인 프로토콜으로는 TCP가 있습니다.
5 계층, Session layer: 통신 세션을 구성하는 계층으로, 포트(Port) 연걸이라고도 할 수 있습니다. 통신장치 간의 상호작용을 설정하고 유지하며 동기화 합니다. your machine과 destination machine을 연결하는 역할입니다.
6 계층, Presentation layer: 운영체계의 한 부분으로 입력 또는 출력되는 데이터를 하나의 표현 형태로 변환시키는 역할을 합니다. 필요한 번역을 수행하여 두 장치가 일관되게 전송 데이터를 서로 이해할 수 있도록 합니다.
7 계층, Application layer: 사용자가 네트워크에 접근할 수 있도록 해주는 계층입니다. 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스인 API(Application Programming Interface)를 제공합니다. 또한 사용자가 어플리케이션을 관리할 수 있도록 Application management 역할을 합니다.
Layer 1, Physical layer: Controls the functions required to transmit bit streams through the physical medium. Design should be done so that the receiving side receives 0 bit instead of 1 bit when the sending bit is 0 bit at design time. The layer sends and receives raw data (raw data sending and receiving)
Layer 2, Data link layer: services provided to neighbor layers, services to neighboring layers. It also serves to forward frames from one device to another without error. It performs framing, error management (error detection and correction) and flow control.
Layer 3, Network layer: responsible for forwarding packets from source to destination over multiple network links. Routing function is used to select the route of the source and destination. It also performs congestion control to control congestion in delivery. Internetworking allows individual networks to connect to each other.
4 layers, transport layer: services provided to neighbor layers, services to neighboring layers. It is responsible for transmitting data from end to end and managing the connection responsible for data transfer, which is the core of the overall protocol hierarchy. This task is to provide reliable, cost-effective data transfer from the source computer to the destination computer independent of the physical network or network currently in use. A typical protocol is TCP.
5th layer, Session layer: It is a layer that forms a communication network. It can also be called a port network. Establishes, maintains, and synchronizes interactions between communication devices. It is the role of connecting your machine to the destination machine.
6 Layer, Presentation layer: It converts data input or output as part of the operating system into a single representation. Perform the necessary translations so that the two devices can consistently understand the transmitted data.
Layer 7, Application layer: This layer allows users to access the network. Provides application programming interface (API), which is an interface that allows you to control the functions provided by the operating system or programming language for use by applications. It also acts as application management to allow users to manage applications.
각각의 기능들에 대한 설명과 해당 기능이 수행되는 계층은 아래와 같습니다.
1) routing: network = 특정 네트워크 안에서 데이터를 보낼 경로를 선택하는 과정.
2)
connection management: transport = 데이터 전송이 보장되도록 연결을 관리하는 것. 이것을 통해 안정적이고 효율적인 데이터 전송이 가능.
3) congestion control: network = 서브넷에 많은 패킷이 들어올 때 수행능력이 감소하는 혼잡 현상이 발생하는데 이를 제어하는 것. 혼잡 제어 알고리즘으로는 Choke packet, hop-by-hop choke packet, load shedding, jitter control 등이 있다.
4) framing: data link = 물리계층에 의해 제공된 비트 스트림을 분리된 프레임으로 나누는 것. 분리된 각 프레임에는 체크섬이 계산되어 저장된다.
5) crash management: data link = 하나의 링크를 공유해서 여러 장비가 다중 접속되어 있는 경우 collision(충돌)이 발생할 수 있기에 이를 관리하는 역할을 한다.
6) internetworking: network = 문자 그대로 네트워크 간의 교류(통신)하는 개념 혹은 기술 전반을 말합니다. 다시말해 독립적으로 움직이는 개개의 네트워크간의 접속을 의미합니다. 예를 들어, 여러 독립적인 LAN을 WAN을 통해서 연결하는 것입니다.
7)
error management (error detection and correction) : data link and transport = 모든 프레임이 최종 목적지에 올바른 순서로 전달되었는지 확인하여 전송된 오류를 처리하는 것입니다. 오류 검출 코드는 단지 전송중에 발생한 오류의 존재 여부만을 수신측이 알 수 있도록 하는 코드로써, 패리티검사(Parity check), 검사합(Checksum), 순환중복검사(Cyclic Redundancy Code) 등이 있습니다. 오류 수정 코드는 무엇이 잘못되었는가를 충분히 알 수 있는 여분의 정보를 포함시켜 수신측이 직접 오류를 고칠 수 있게하는 코드로써, 부호어(codeword), 해밍 부호(Hamming code) 등이 있습니다.
* data-link와 transport 유사점 및 차이점
데이터 링크 계층은 노드 대 노드 전송의 프레임에 대한 오류를 제어하나, 전송 계층은 전체 세그먼트 오류(손상, 유실 등) 없이 수신측 전송 계층에 도착하도록 오류 제어 기능을 수행합니다.
8) raw data sending and receiving: physical
layer = 원시데이터, 즉 초기데이터를 주고 받는 것을 말하며 이는 물리적 매체를 통해 비트(bit)흐름을 전송하기 위해 요구되는 기능들을 조정하는 물리 계층에서 이루어집니다.
9) application management: application = 어플리케이션을 관리하는 것으로써 사용자가 특정 어플리케이션에 접근하거나 관리할 수 있도록 합니다.
10) application program interface: application = 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말합니다. 어플리케이션 계층에서 이를 사용자에게 제공합니다.
11) flow control: data link and transport = 데이터를 보내는 측의 속도가 상대적으로 빠를 때 특정 시점에서 수신하는 측은 프레임이 도착하자마자 처리할 수 있는 능력이 되지 않아서 일부 프레임을 손실수 있기 때문에 데이터를 보내는 측과 받는 측간의 속도를 확인하여 이를 제어하는 것입니다.
* data-link와 transport 유사점 및 차이점
두 계층에서 속도가 빠른 송신기와 속도가 느린 수신기 사이에서 데이터가 초과되어 버려지지 않도록 각 연결에서 속도를 제어하는 것은 유사하지만, 라우터는 비교적 적은 회선을 갖는 반면 호스트는 많은 연결을 갖는 것이 차이점 입니다.
즉, 데이터 링크에서는 송수신 양단 간에 송신율 및 수신율의 균형을 맞추는 것이고 트랜스포트에서는 단일 데이터 링크간이 아닌, 전송계층 종단-대-종단 간에 흐름제어 기능을 하는 것이다.
12) services provided to neighbor layers: data
link: transport = 이웃한 계층들에게 잘 정의된 서비스 인터페이스를 제공해 주는 것으로써 데이터 링크 계층에서는 물리계층과 네트워크 계층 간 이루어지며 전송 계층에서는 네트워크 계층과 세션 계층간 이루어집니다.
A description of each function and the hierarchy in which the function is performed are shown below.
1) routing: network = The process of selecting the path to send data within a particular network.
2) connection management: transport = Managing connections so that data transfer is guaranteed. This enables stable and efficient data transmission.
3) congestion control: network = Controls the congestion that occurs when there are many packets in the subnet. The congestion control algorithms include choke packets, hop-by-hop choke packets, load shedding, and jitter control.
4) framing: data link = Splitting the bit stream provided by the physical layer into separate frames. A checksum is computed and stored for each separate frame.
5) crash management: data link = It controls the collision (collision) when multiple equipments are connected by sharing one link.
6) internetworking: network = A concept or technology that literally exchanges (communicates) between networks. In other words, it refers to the connection between individual networks that move independently. For example, you can connect several independent LANs over a WAN.
7) error management (error detection and correction): data link = to ensure that all frames are delivered to the final destination in the correct order, and handle the errors that have been sent. The error detection code is a code that allows the receiver to know only whether an error occurred during transmission. The error detection code includes a parity check, a checksum, and a cyclic redundancy code. An error correction code is a code that allows the receiver to correct an error by including extra information enough to know what is wrong, such as codeword and Hamming code.
8) raw data sending and receiving: physical layer = sending and receiving raw data, ie, initial data, which is done at the physical layer to coordinate the functions required to transmit bit streams through the physical medium.
9) application management: application = Allows users to access or manage specific applications by managing applications.
10) application program interface: application = An interface that allows you to control the functions provided by an operating system or programming language for use by an application. This is provided to the user at the application layer.
11) flow control: data link = When the sending speed of the data is relatively fast, the receiving party at a certain point does not have the ability to process the frame as soon as it arrives, so some frames may be lost. It is to check the speed between the sides and control it.
12) services provided to neighbor layers: data link: transport = provides a well-defined service interface to neighboring layers, the data link layer is composed of physical layer and network layer, and the transport layer is composed of network layer and session layer .
What is the purpose of the header of each layer? How is it used?
헤더에는 제어 정보를 비롯한 정보들이 들어있다. 데이터를 전송할 때 각각의 층마다 인식할 수 있도록 하는 목적을 가지고 있으며 헤더를 붙이는 과정을 캡슐화라고 한다. 데이터링크계층에서는 오류제어를 위해 데이터의 뒷부분에도 일부 데이터가 추가된다. 또한 수신된 데이터가 각각의 레이어를 따라 올라가면서 헤더가 벗겨지는 과정을 디캡슐레이션이라고 한다.
What does the application layer protocol mean? How does it operate?
응용 계층 프로토콜은 최종 사용자가 직접 사용할 수 있는 여러가지 프로토콜이다. 보통 사용자는 TCP/UDP에 직접 접속하지 않고 응용 계층을 이용하여 통신 서비스를 사용한다.
그 중 인터넷에서 파일을 전송하는 기본 프로토콜은 FTP로써, 파일 전송을 위한 가장 기본적인 프로토콜이다. IP와 TCP가 존재하지 않을 때 개발되었으며 FTP는 대화형으로 클라이언트와 서버가 통신이 가능하다. FTP를 사용하기 위해 먼저 서버에 로그인해야 하며, 사용자는 로그인 이름과 패스워드를 입력하여 클라이언트를 인증한다. FTP의 동작원리로는, FTP 서비스를 제공하는 서버와 여기에 접속하는 클라이언트 사이에 두개의 연결이 생성되는데 하나는 데이터 전송을 제어하기 위한 신호를 주고받는 역할을 하고 다른 하나는 실제 데이터 전송에 사용된다.
이 외에도 웹상에서 웹 서버 및 웹 브라우저 상호간의 메세지 전송을 위한 응용계층 프로토콜로써 HTTP가 존재하며 호스트에 대한 이름 주소 변환을 위한 DNS 등이 있다.
프로토콜은 접속된 기기에 불러온 서비스와 응용 프로그램간 데이터를 교환하기 위해 일관된 규칙을 설정한다. 프로토콜은 메세지 내부의 데이터가 구조화 되는 방법과 소스와 대상간에 전송되는 메세지 유형을 지정한다.
Explain how the sending process sends its data to the receiving process and how the receiving process receives the data from the sending process. Explain the path of data in detail. Explain how the header of each layer is used. (equivalent to several questions)
간단하게 이야기한다면, 일반 사용자는 OSI 7계층 맨 위에 있는 응용 계층을 통해 데이터 송수신을 요청한다. 이 요청은 하위 계층으로 순차적으로 전달되어 맨 아래 있는 물리 계층을 통해 상대 호스트에 전송된다. 그리고 요청이 각 계층으로 전달되는 과정에서 계층별로 담당하는 기능을 수행하여 데이터를 안전하게 송수신한다. 데이터를 수신한 호스트에서는 송신 호스트와 반대 과정을 거치게 된다. 물리 계층으로 들어온 데이터는 순차적인 상향 전달 과정을 거쳐 응용 계층으로 올라간다. 그리고 처리가 완료된 결과를 회신할 때는 반대과정을 순차적으로 거쳐서 송신 호스토로 되돌아가게 된다. 따라서 데이터를 송수신하는 최종 주체는 송수신 호스트 양쪽에 위치한 응용 계층이며, 아래의 계층은 데이터 전송에 필요한 기능만 나누어 처리하게 된다.
Explain the TCP/IP model.
TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP(Internet Protocol)와 전송 조절 프로토콜인 TCP(Transmission Control Protocol)로 이루어져 있는 것이다. IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있고 TCP는 IP위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. HTTP, FTP, SMTP 등 TCP를 기반으로 한 많은 수의 어플리케이션 프로토콜들이 IP위에서 동작하기 때문에 묶어서 TCP/IP로 부르기도 한다.
TCP/IP 모델은 4개의 계층 구조를 가진 개념적인 모델로써 매핑되어 있다. 각 계층은, 어플리케이션, 트랜스포트, 인터넷, 네트워크 인터페이스이다. 인터넷에서 전송되는 정보나 파일들이 일정한 크기의 패킷들로 나뉘어 네트워크상 수많은 노드들의 조합으로 생성되는 경로들을 거쳐 분산적으로 전송되고, 수신지에 도착한 패킷들이 원래의 정보나 파일로 재조립되록 한다.
What it the difference between the TCP/IP model and the ISO OSI seven layer computer communication model? Explain.
TCP / IP는 데이터 통신에 대한 두 가지 접근법 중 오래된 것이고 전 세계적으로 잘 알려져 있습니다. 그러나 OSI 모델은 다른 모든 데이터 통신 프로토콜에 사용되는 입증 된 개념입니다. 다른 모든 통신 응용 프로그램의 지침으로 계속 사용될 것입니다.
What layer does Token ring and Ethernet belong to?
토큰링은 근거리 통신망 프로토콜으로써 데이터 링크 계층에 속해있으며 이더넷이 개발되면서 잘 쓰이지 않는다. 이더넷은 컴퓨터 네트워크 기술의 하나로, 전세계의 사무실이나 가정에서 일반적으로 사용되는 LAN에서 가장 많이 활용되는 기술 규격이며 물리 계층에서는 신호와 배선, 데이터 링크 계층에서는 MAC 패킷과 프로토콜의 형식을 정의한다.
What layer does Domain Name Service (DNS) belong to?
DNS는 Domain Name System 으로써 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 개발되었고 Application layer에 속해 있다.
What layer does World Wide Web (WWW) belong to?
WWW 은 World Wide Web 으로써 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보공간을 말하며 어플리케이션 레이어에 속해있다.
What cookies belong to?
Cookies 는 웹 서버가 로컬 컴퓨터의 하드디스크에 저장하는 작은 텍스트 파일로써 사이트의 방문자에 대한 정보를 가지고 있으며 어플리케이션 레이어에 속해 있다.
What is the purpose of the header of each layer? How is it used?
The header contains information, including control information. Encapsulation is the process of attaching headers with the goal of recognizing each layer when transmitting data. In the data link layer, some data is added to the rear part of the data for error control. Also, the process of stripping the header as the received data moves along each layer is called decapsulation.
What does the application layer protocol mean? How does it operate?
Application layer protocols are various protocols that end users can use directly. Usually users do not directly connect to TCP / UDP but use communication service using application layer.
The basic protocol for transferring files over the Internet is FTP, which is the most basic protocol for file transfer. It was developed when IP and TCP do not exist, and FTP can interact with client and server. To use FTP, you must first log in to the server, and the user authenticates the client by entering his login name and password. The operation principle of FTP is that two connections are created between a server providing FTP service and a client connecting to it. One of them is used to send and receive signals to control data transmission, and the other is used for actual data transmission. do.
In addition, HTTP exists as an application layer protocol for transmitting messages between web servers and web browsers on the web, and DNS for name address translation for hosts.
The protocol establishes a consistent set of rules for exchanging data between the application and the service loaded on the connected device. The protocol specifies how the data in the message is structured and the type of message sent between the source and the destination.
Explain how the sending process sends its data to the receiving process and how the receiving process receives the data from the sending process. Explain the path of data in detail. Explain how the header of each layer is used. (equivalent to several questions)
In simple terms, the user requests data transmission / reception via the application layer at the top of the OSI Layer 7 hierarchy. This request is sequentially transmitted to the lower layer and transmitted to the other host through the lower physical layer. In the process of transmitting the request to each layer, data is securely transmitted and received by performing a function for each layer. The host that receives the data goes through the opposite process to the sending host. The data coming into the physical layer goes up to the application layer through the sequential uplink transmission process. When the result of the process is returned, the process returns to the transmitting host sequentially. Therefore, the final entity that transmits and receives data is the application layer located on both sides of the transmission / reception host, and the lower layer processes only the functions necessary for data transmission.
Explain the TCP/IP model.
TCP / IP consists of IP (Internet Protocol), an Internet protocol for packet communication, and TCP (Transmission Control Protocol), a transmission control protocol. IP does not guarantee the delivery of packets, the order of sending and receiving packets may be different, and TCP is a protocol that operates on IP, which guarantees delivery of data and receives them in the order of sending. Many application protocols based on TCP, such as HTTP, FTP, and SMTP, operate on IP, so they are also called TCP / IP.
The TCP / IP model is mapped as a conceptual model with four hierarchical structures. Each layer is an application, transport, Internet, and network interface. Information or files transmitted over the Internet are divided into packets of a certain size and are transmitted in a distributed manner through routes generated by a combination of a number of nodes in the network, and packets arriving at a destination are reassembled into original information or files.
What it the difference between the TCP/IP model and the ISO OSI seven layer computer communication model? Explain.
TCP/IP is the older of the two approaches to data communications and is well established throughout the world. The OSI model, however, is a proven concept that is used in all other data communications protocols. It will continue to be used as a guideline for all other communications applications.
What layer does Token ring and Ethernet belong to?
Token Ring belongs to the data link layer as a local area network protocol and is not well used as Ethernet is developed. Ethernet is one of the computer network technologies. It is the most widely used technical standard in the LAN which is commonly used in offices and homes around the world. In the physical layer, it defines signals and wiring. In the data link layer, it defines the format of MAC packets and protocols.
What layer does Domain Name Service (DNS) belong to?
DNS is a Domain Name System (DNS) that is developed to allow a host's domain name to be translated to the host's network address and vice versa, and is part of the Application layer.
What layer does World Wide Web (WWW) belong to?
The World Wide Web is a World Wide Web, a global information space where people can share information through computers connected to the Internet and belongs to the application layer.
What cookies belong to?
Cookies are small text files that the web server stores on the local computer's hard disk, which contain information about the site's visitors and belong to the application layer.