

{"id":107177,"date":"2022-02-01T09:00:56","date_gmt":"2022-02-01T03:30:56","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=107177"},"modified":"2022-02-01T12:05:26","modified_gmt":"2022-02-01T06:35:26","slug":"sliding-window-protocol","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/","title":{"rendered":"Sliding Window Protocol &#8211; Working and Types"},"content":{"rendered":"<p>In this article, we will learn about sliding window protocol with its working, advantages, limitations and types. Let&#8217;s start!!<\/p>\n<h3>What is Sliding Window Protocol?<\/h3>\n<p>Sliding windows are a method of sending multiple frames at once. It manages data packets between the two devices, ensuring delivery of data frames reliably and gradually. It&#8217;s also found in TCP (Transmission Control Protocol).<\/p>\n<p>Each frame is sent from the sequence number in this technique. The sequence numbers find use in the receiving end to locate missing data. The sequence number finds use in the sliding window technique in order to avoid duplicate data.<\/p>\n<h3>Working Principle of Sliding Window:<\/h3>\n<p>The sender&#8217;s buffer is the sending window, and the receiver&#8217;s buffer is the receiving window in these protocols.<\/p>\n<p>Assignment of sequence numbers to frames is between the range 0 to 2n-1 if the frames&#8217; sequence number is an n-bit field. As a result, the sending window has a size of 2n-1. As a result, we choose an n-bit sequence number to accommodate a sending window size of 2n-1.<\/p>\n<p>Modulo-n is used to number the sequence numbers. If the sending window size is set as 3, the sequence numbers will be 0, 1, 2, 0, 1, 2, 0, 1, 2 and so on.<\/p>\n<p>The receiving window&#8217;s size refers to the maximum number of frames the receiver can accept at one time. It establishes the maximum number of frames a sender can send before receiving an acknowledgement.<\/p>\n<p>Sliding Window (Sender and Receiver side):<\/p>\n<h4>a. Sender Side:<\/h4>\n<p>The sequence number of the frame occupies a field in the frame. So, the sequence number should be kept to a minimum.<\/p>\n<p>The sequence number ranges from 0 to 2k-1 if the frame header allows k bits.<\/p>\n<p>The sender maintains a list of sequence numbers that are only allowed to be sent by the sender.<\/p>\n<p>The sender window can only be 2k-1 in size.<\/p>\n<p>For example, if the frame allows 4 bits, the window&#8217;s size is 2 raised to the power 4 -1 16-1=15.<\/p>\n<p>The sender has a buffer with the same size as the window.<\/p>\n<h4>b. Receiver Side:<\/h4>\n<p>On the receiver side, the size of the window is always 1.<\/p>\n<p>The receiver acknowledges a frame by sending an ACK frame to the sender, along with the sequence number of the next expected frame.<\/p>\n<p>The receiver declares explicitly that it is ready to receive N subsequent frames, starting with the specified number.<\/p>\n<p>We use this scheme in order to acknowledge multiple frames.<\/p>\n<p>The receiver&#8217;s window can hold 2,3,4 frames, but the ACK frame will be held until frame 4 arrives. It will send the<\/p>\n<p>ACK along with sequence number 5 after the arrival, with which the acknowledgment of 2,3,4 will be done one at a time.<\/p>\n<p>The receiver requires a buffer size of one.<\/p>\n<h3>Types of Sliding Window Protocols:<\/h3>\n<h4>1. Go-Back-N ARQ:<\/h4>\n<p>The Go-Back-N Automatic Repeat Request protocol is also known as the Go-Back-N ARQ protocol. A sliding window method finds use in this data link layer protocol. In the event of corruption or loss of frames, all subsequent frames must be sent again.<\/p>\n<p>In this protocol, the sender window size is N. The size of the receiver window is always one.<\/p>\n<p>In the event of transmission of a corrupted frame, the receiver cancels it. The receiver does not accept a corrupted frame. The sender sends the correct frame again when the timer expires.<\/p>\n<h4>Example of Go-Back-N ARQ:<\/h4>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/go-back-n-arq.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-107422\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/go-back-n-arq.webp\" alt=\"go back n arq\" width=\"1080\" height=\"440\" \/><\/a><\/p>\n<p>a. First, the sender sends the first four frames in the window (here the window size is 4).<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/working-of-go-back-n-arq.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-107423\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/working-of-go-back-n-arq.webp\" alt=\"working of go back n arq\" width=\"1080\" height=\"440\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>b. Then, the receiver sends the acknowledgment for the 0th frame.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/working-of-go-back-n-arq-steps.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-107421\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/working-of-go-back-n-arq-steps.webp\" alt=\"working of go back n arq steps\" width=\"1080\" height=\"440\" \/><\/a><\/p>\n<p>c. The receiver then slides the window over and sends the next frame in the queue.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/working-of-go-back-n-arq-type.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-107420\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/working-of-go-back-n-arq-type.webp\" alt=\"working of go back n arq type\" width=\"1080\" height=\"440\" \/><\/a><\/p>\n<p>d. Accordingly, the receiver sends the acknowledgement for the 1st frame, and upon receiving that, the sender slides the window again and sends the next frame. This process keeps on happening until all the frames are sent successfully.<\/p>\n<h4>2. Selective Repeat ARQ:<\/h4>\n<p>Selective Repeat ARQ (Selective Repeat Automatic Repeat Request) is another name for Selective Repeat ARQ. A sliding window method is used in this data link layer protocol. If the frame has fewer errors, Go-Back-N ARQ works well. However, if the frame contains a lot of errors, sending the frames again will result in a lot of bandwidth loss. As a result, we employ the Selective Repeat ARQ method. The size of the sender window is always equal to the size of the receiver window in this protocol. The sliding window&#8217;s size is always greater than 1.<\/p>\n<h4>Example of Selective Repeat ARQ:<\/h4>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/selective-repeat-arq.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-107424\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/selective-repeat-arq.webp\" alt=\"selective repeat arq\" width=\"960\" height=\"754\" \/><\/a><\/p>\n<p>a. First, the sender sends the contents of the first window, which are frames 0 and 1 (because the window size is 2).<\/p>\n<p>b. When the receiver receives the frames sent above, it sends an acknowledgment for frame 2 (because frame 2 is the frame it expects to receive next).<\/p>\n<p>c. The sender then sends frames 2 and 3, however, frame 2 is lost on the way. The receiver thus sends back a \u201cNAK\u201d signal or a non-acknowledgment to let the sender know that frame 2 has been lost, and thus the sender retransmits frame 2.<\/p>\n<h3>Difference between Go-Back-N ARQ vs Selective Repeat ARQ:<\/h3>\n<table>\n<tbody>\n<tr>\n<td>\n<p style=\"text-align: center\"><b>Go-Back-N ARQ<\/b><\/p>\n<\/td>\n<td>\n<p style=\"text-align: center\"><b>Selective Repeat ARQ<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">All subsequent frames must be sent again if a frame is corrupted or lost.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Only the frame that has been corrupted or lost is sent again.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">It wastes a lot of bandwidth if it has a high error rate.<\/span><\/td>\n<td><span style=\"font-weight: 400\">There is less bandwidth loss.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">It&#8217;s less complicated.<\/span><\/td>\n<td><span style=\"font-weight: 400\">It&#8217;s more difficult because it requires sorting and searching. It also necessitates more storage.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">It does not necessitate any sorting.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Sorting is done in this step to ensure that the frames are in the correct order.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">It does not necessitate any searching.<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is where the search is carried out.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">This is being used more frequently.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Because it is more complicated, it is used less frequently.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Advantages of Sliding Window Protocols:<\/h3>\n<p>1. It is possible to send multiple packets without receiving an acknowledgment.<br \/>\n2. Piggybacking with full-duplex lines is possible.<\/p>\n<h3>Disadvantages of Sliding Window Protocol:<\/h3>\n<p>1. This protocol does not impose any restrictions on sequence numbers.<br \/>\n2. In some cases, there may be a waste of bandwidth.<\/p>\n<h3>Summary<\/h3>\n<p>In this article, we looked at the concept of Sliding Window protocols, and also explored the two types of sliding window protocols: Go-Back-N ARQ and Selective Repeat ARQ. We covered the detailed working of each of the two types and also looked at the difference between the 2 protocols.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will learn about sliding window protocol with its working, advantages, limitations and types. Let&#8217;s start!! What is Sliding Window Protocol? Sliding windows are a method of sending multiple frames at&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":107418,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24974],"tags":[26513,26514,25364,26512,26510,26511],"class_list":["post-107177","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computer-network","tag-advantages-of-sliding-window-protocols","tag-disadvantages-of-sliding-window-protocol","tag-go-back-n-arq","tag-selective-repeat-arq","tag-sliding-window-protocol","tag-types-of-sliding-window-protocol"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sliding Window Protocol - Working and Types - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn about Sliding Window protocol with its working. See its types- Go-Back-N ARQ and Selective Repeat ARQ with working and differences.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sliding Window Protocol - Working and Types - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn about Sliding Window protocol with its working. See its types- Go-Back-N ARQ and Selective Repeat ARQ with working and differences.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-01T03:30:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-01T06:35:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/sliding-window-protocol.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sliding Window Protocol - Working and Types - DataFlair","description":"Learn about Sliding Window protocol with its working. See its types- Go-Back-N ARQ and Selective Repeat ARQ with working and differences.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/","og_locale":"en_US","og_type":"article","og_title":"Sliding Window Protocol - Working and Types - DataFlair","og_description":"Learn about Sliding Window protocol with its working. See its types- Go-Back-N ARQ and Selective Repeat ARQ with working and differences.","og_url":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2022-02-01T03:30:56+00:00","article_modified_time":"2022-02-01T06:35:26+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/sliding-window-protocol.webp","type":"image\/webp"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/b49855299264df5e27e3ec6c2cd9fde9"},"headline":"Sliding Window Protocol &#8211; Working and Types","datePublished":"2022-02-01T03:30:56+00:00","dateModified":"2022-02-01T06:35:26+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/"},"wordCount":1056,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/sliding-window-protocol.webp","keywords":["Advantages of Sliding Window Protocols","Disadvantages of Sliding Window Protocol","Go-Back-n ARQ","Selective Repeat ARQ","Sliding Window Protocol","Types of Sliding Window Protocol"],"articleSection":["computer network tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/","url":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/","name":"Sliding Window Protocol - Working and Types - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/sliding-window-protocol.webp","datePublished":"2022-02-01T03:30:56+00:00","dateModified":"2022-02-01T06:35:26+00:00","description":"Learn about Sliding Window protocol with its working. See its types- Go-Back-N ARQ and Selective Repeat ARQ with working and differences.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/sliding-window-protocol.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/01\/sliding-window-protocol.webp","width":1200,"height":628,"caption":"sliding window protocol"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/sliding-window-protocol\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"computer network tutorial","item":"https:\/\/data-flair.training\/blogs\/category\/computer-network\/"},{"@type":"ListItem","position":3,"name":"Sliding Window Protocol &#8211; Working and Types"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/b49855299264df5e27e3ec6c2cd9fde9","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ef46b745ddad2fad690af626c6ef29b91809ad0a9f5ef398d07817d8cad042f5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ef46b745ddad2fad690af626c6ef29b91809ad0a9f5ef398d07817d8cad042f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef46b745ddad2fad690af626c6ef29b91809ad0a9f5ef398d07817d8cad042f5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team is a group of passionate educators and industry experts dedicated to providing high-quality online learning resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With years of experience in the field, the team aims to simplify complex topics and help learners advance their careers. At DataFlair, we believe in empowering students and professionals with the knowledge and skills needed to thrive in today\u2019s fast-paced tech industry. Follow us for Free courses, expert insights, tutorials, and practical tips to boost your learning journey.","url":"https:\/\/data-flair.training\/blogs\/author\/datafbdad\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/107177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=107177"}],"version-history":[{"count":4,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/107177\/revisions"}],"predecessor-version":[{"id":107425,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/107177\/revisions\/107425"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/107418"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=107177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=107177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=107177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}